Collection.stream()
Создаёт поток (Stream) из элементов коллекции.
Доступно с: Java 8
Синтаксис
default Stream<E> stream()Возвращаемое значение
Stream<E>Новый поток элементов коллекции.
Примеры
Цепочка операций над списком:
void main() {
List<String> names = List.of("Anna", "Oleg", "Ivan", "Alla");
List<String> result = names.stream()
.filter(n -> n.startsWith("A"))
.map(String::toUpperCase)
.toList();
IO.println(result);
IO.println(names);
}Результат:
[ANNA, ALLA]
[Anna, Oleg, Ivan, Alla]Примечания
Поток не хранит данные и не меняет исходную коллекцию. Промежуточные операции (filter, map, sorted) ленивые и выполняются, только когда вызвана завершающая (toList, count, forEach, collect). Поток одноразовый: повторное использование бросает IllegalStateException. У Map потока нет — используйте map.entrySet().stream().
См. также
- Stream.of() — Создаёт поток из перечисленных значений.
- Stream.filter() — Оставляет в потоке только элементы, подходящие под условие.
- Stream.map() — Преобразует каждый элемент потока.
- Stream.toList() — Собирает элементы потока в неизменяемый список.
В учебнике
- Что такое поток данных — Stream API в Java — источник, промежуточные и завершающие операции, создание потоков, ленивые вычисления и одноразовость потока.