Назад к вопросам
Middle
227
questionbank
Что делает метод peek в Stream API?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Метод peek в Java Stream API предназначен для выполнения некоторого действия над каждым элементом потока без его потребления, то есть без изменения самого потока. Он возвращает тот же поток, позволяя проводить отладочные или логирующие действия в процессе обработки.
Пример использования:
// Пример использования peek для логирования
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> processedNames = names.stream()
.filter(name -> name.length() > 3) // Фильтруем имена длиннее 3 символов
.peek(name -> System.out.println("Processing name: " + name)) // Логируем каждое имя после фильтрации
.map(String::toUpperCase) // Преобразуем к верхнему регистру
.collect(Collectors.toList()); // Собираем в список
// Вывод:
// Processing name: Alice
// Processing name: Charlie
Важные моменты:
peekявляется промежуточной операцией.- Он используется в основном для отладки или выполнения побочных эффектов.
- Не следует полагаться на
peekдля изменения состояния элементов потока или внешних переменных, так как порядок и количество вызовов могут быть непредсказуемыми в параллельных потоках. - Если за
peekне следует терминальная операция, действие, указанное вpeek, не будет выполнено.