Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpStPk 46 of 322 menu
◀ ▶

Просмотр элементов потока в Java

Метод peek принимает действие над каждым элементом и возвращает тот же поток дальше. Элементы не заменяются: шаг нужен для отладки, логирования или счетчика во время конечной операции.

Пока цепочка не завершена, peek ничего не печатает. После toList сообщения идут в момент реального обхода:

import java.util.List; public class Main { public static void main(String[] args) { List<Integer> nums = List.of(3, 8, 1); List<Integer> picked = nums.stream() .filter(n -> n > 2) .peek(n -> System.out.println("seen " + n)) .map(n -> n * 10) .toList(); System.out.println(picked); } }

peek не заменяет нормальную обработку данных. Тяжелую логику в нём лучше не держать: побочные эффекты должны оставаться прозрачными для читателя цепочки.

Дан код:

var strings = List.of("a", "bb", "ccc");

На шаге filter оставьте строки длиннее одного символа, в peek печатайте длину, затем соберите список и выведите его.

Для чисел List.of(4, 5, 6) постройте поток с peek, который печатает удвоенное значение, но не вызывайте конечную операцию. Выведите "wait", затем посчитайте сумму и сверьте порядок строк в консоли.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить