👩💻 Что такое Stream.peek() и зачем он нужен?
peek() — это промежуточный метод стримов, который позволяет выполнить произвольное действие над каждым элементом без изменения самих элементов. Классический use case: отладка пайплайнов, логирование, заполнение внешних коллекций.
⚡️ Пример:
import java.util.*;
import java.util.stream.*;
public class PeekExample {
public static void main(String[] args) {
List log = new ArrayList();
List result = Stream.of("java", "python", "rust")
.peek(s -> System.out.println("До фильтра: " + s))
.filter(s -> s.length() > 3)
.peek(s -> System.out.println("После фильтра: " + s))
.map(String::toUpperCase)
.peek(log::add) // побочный эффект
.collect(Collectors.toList());
System.out.println("Результат: " + result);
System.out.println("Лог: " + log);
}
}
➡️ Easy Java | #Теория
peek() — это промежуточный метод стримов, который позволяет выполнить произвольное действие над каждым элементом без изменения самих элементов. Классический use case: отладка пайплайнов, логирование, заполнение внешних коллекций.
⚡️ Пример:
import java.util.*;
import java.util.stream.*;
public class PeekExample {
public static void main(String[] args) {
List log = new ArrayList();
List result = Stream.of("java", "python", "rust")
.peek(s -> System.out.println("До фильтра: " + s))
.filter(s -> s.length() > 3)
.peek(s -> System.out.println("После фильтра: " + s))
.map(String::toUpperCase)
.peek(log::add) // побочный эффект
.collect(Collectors.toList());
System.out.println("Результат: " + result);
System.out.println("Лог: " + log);
}
}
Особенно полезен при откладке длинных стрим-пайплайнов, логировании промежуточных этапов, сборке метрик или статистики, побочных эффектах в тестовых сценариях.
➡️ Easy Java | #Теория