Я работаю над JDK 1.8 в течение нескольких дней, когда я наткнулся на какой-то фрагмент кода, который был похож на это:
List<Integer> list = Arrays.asList(1,2,3,4,5);
list.stream();
Теперь, простой и чистый, как это может показаться людям, которые работали с потоками (java.util.stream
), я не смог найти фактический класс, который реализует метод java.util.Collection.stream()
.
У меня есть следующие вопросы, когда я говорю list.stream()
:
- Где я могу получить
java.util.stream.Stream
от? - Как они реализовали его, фактически не "нарушив" существующие коллекции? (предполагая, что они их не трогали).
Я попытался просмотреть документацию java.util.AbstractCollection
и java.util.AbstractList
, но не смог его найти.