Найти тему
DEBAGanov

Java 1447. Stream API - метод peek().

Метод peek() в Stream API предоставляет возможность выполнить операцию над каждым элементом потока без изменения самого потока. Этот метод принимает в качестве аргумента функциональный интерфейс Consumer, который определяет операцию, выполняемую над каждым элементом.

Особенности метода peek():

Метод peek() является промежуточной операцией, то есть он не изменяет исходный поток элементов. Он возвращает новый поток, содержащий те же элементы, что и исходный поток. Метод peek() выполняет операцию над каждым элементом потока, но не возвращает результат этой операции. Операция, выполняемая методом peek(), должна быть безопасной и не изменять состояние элементов потока. Пример использования метода peek():

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

List<Integer> doubledNumbers = numbers.stream()
.peek(n -> System.out.println("Исходный элемент: " + n))
.map(n -> n * 2)
.peek(n -> System.out.println("Удвоенный элемент: " + n))
.collect(Collectors.toList());

В этом примере мы создаем поток из списка чисел и применяем метод peek() для вывода каждого элемента перед и после удвоения. Затем мы используем метод map() для удвоения каждого элемента и собираем результат в новый список doubledNumbers. В результате выполнения этого кода будет выведено:

Исходный элемент: 1
Удвоенный элемент: 2
Исходный элемент: 2
Удвоенный элемент: 4
Исходный элемент: 3
Удвоенный элемент: 6
Исходный элемент: 4
Удвоенный элемент: 8
Исходный элемент: 5
Удвоенный элемент: 10

Метод peek() полезен, когда требуется выполнить какую-то операцию над элементами потока, не изменяя сам поток. Например, можно использовать peek() для отладки или логирования элементов потока.

1606 вопрос-ответ по Java

Курс Spring Framework

Tелеграмм каналDEBAGanov

Мое резюмеDEBAGanov

Если вам понравилось, буду признателен за подписку.