Встречается на собеседованиях • сегодня
Почему операции в Stream называют ленивыми
Операции в Stream ленивые, потому что они не выполняются до вызова терминальной операции. Промежуточные операции (filter, map и др.) лишь формируют конвейер, а реальная обработка данных начинается только при вызове collect, forEach, reduce и т.д. Это позволяет оптимизировать выполнение, избегая лишних проходов по данным.
Пример:
```java
List list = Arrays.asList("a1", "a2", "b1", "c2", "c1");
list.stream()
.filter(s -> s.startsWith("c")) // не выполняется сразу
.map(String::toUpperCase) // не выполняется сразу
.sorted() // не выполняется сразу
.forEach(System.out::println); // терминальная операция - запускает весь конвейер
```
Ленивость позволяет:
1. Откладывать вычисления до необходимости
2. Оптимизировать выполнение (например, объединять операции)
3. Работать с бесконечными стримами

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы