Junior — Middle
98
Wat is het verschil tussen de methode peek en forEach bij het werken met streams in de Stream API?
Bedrijven waar gevraagd werd
Тетрасофт
Antwoord van AI
sobes.tech AI
В Stream API Java методы peek и forEach имеют разные назначения и особенности:
-
peek — промежуточная операция, которая позволяет выполнить действие над каждым элементом потока, не изменяя сам поток. Обычно используется для отладки или логирования. Поскольку это промежуточная операция, она лениво выполняется и не запускается, пока не вызовут терминальную операцию.
-
forEach — терминальная операция, которая выполняет действие над каждым элементом потока и завершает обработку. После вызова
forEachпоток считается потреблённым и не может быть использован дальше.
Пример:
Stream.of(1, 2, 3)
.peek(i -> System.out.println("peek: " + i)) // отладка
.map(i -> i * 2)
.forEach(i -> System.out.println("forEach: " + i));
Здесь peek выводит элементы до преобразования, а forEach — после. Если вызвать только peek без терминальной операции, код не выполнится.