Back to questions
Junior — Middle
51
В чем заключается принцип ленивой оценки в потоках данных Stream?
Answer from AI
sobes.tech AI
Принцип ленивой оценки (lazy evaluation) в потоках данных Stream в Java означает, что промежуточные операции (например, filter, map) не выполняются сразу при их вызове. Вместо этого они накапливаются и реально обрабатываются только тогда, когда вызывается терминальная операция (например, collect, forEach). Это позволяет оптимизировать выполнение, избегая лишних вычислений и проходов по данным.
Пример:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> {
System.out.println("filter: " + s);
return s.startsWith("a");
});
// Здесь фильтр не выполняется
stream.forEach(System.out::println); // Терминальная операция запускает обработку
В этом примере вывод "filter: ..." появится только при вызове forEach, а не при создании потока.