Встречается на собеседованиях • сегодня
С какого места начинает выполняться Stream
Stream начинает выполняться только при вызове терминальной операции (terminal operation). Промежуточные операции (intermediate operations) просто формируют конвейер, но не запускают обработку данных.
Пример:
```java
List list = Arrays.asList("a", "b", "c");
Stream stream = list.stream() // источник
.filter(s -> s.startsWith("a")) // промежуточная операция
.map(String::toUpperCase); // промежуточная операция
// Пока нет терминальной операции - ничего не выполняется
stream.forEach(System.out::println); // терминальная операция
```
Только при вызове `forEach()`, `collect()`, `count()` и других терминальных операций начинает выполняться весь конвейер. Это называется "ленивой" (lazy) обработкой.

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