Встречается на собеседованиях • сегодня

В чем разница между peek и forEach в Stream API

`peek` и `forEach` оба являются терминальными операциями в Stream API, но имеют ключевые различия: 1. **Промежуточная vs терминальная**: - `peek` — промежуточная операция (lazy), выполняется только при вызове терминальной операции. - `forEach` — терминальная операция, сразу выполняет действие. 2. **Назначение**: - `peek` — для отладки (логирование элементов). - `forEach` — для выполнения side-effect-действий (сохранение, вывод). 3. **Пример**: ```java List numbers = Arrays.asList(1, 2, 3); // peek (не выполнится без терминальной операции) numbers.stream() .peek(n -> System.out.println("peek: " + n)) .count(); // терминальная операция // forEach (выполнится сразу) numbers.stream() .forEach(n -> System.out.println("forEach: " + n)); ``` **Важно**: `peek` не гарантирует обработку всех элементов, если поток не завершается терминальной операцией.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы