Встречается на собеседованиях • сегодня
Когда будут исполняться нетерминальные методы в Stream
Нетерминальные (промежуточные) методы в Stream выполняются лениво — только при вызове терминальной операции. Они формируют конвейер, но не обрабатывают данные до фактического запуска терминального метода.
Пример:
```java
List list = Arrays.asList("a1", "a2", "b1", "c2", "c1");
Stream stream = list.stream()
.filter(s -> {
System.out.println("filter: " + s);
return s.startsWith("c");
})
.map(s -> {
System.out.println("map: " + s);
return s.toUpperCase();
});
// Пока ничего не выведет - stream не обработан
System.out.println("Before terminal");
stream.forEach(System.out::println); // Тут выполнится весь конвейер
```
Вывод:
```
Before terminal
filter: a1
filter: a2
filter: b1
filter: c2
map: c2
C2
filter: c1
map: c1
C1
```

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