Проміжна Обробка за Допомогою Методу peek()
Свайпніть щоб показати меню
Метод peek() дозволяє вставити логування на етапі обробки без зміни потоку даних, а потім продовжити операції над елементами, які проходять необхідне фільтрування.
Stream<T> peek(Consumer<? super T> action);
Цей метод приймає об'єкт, що реалізує інтерфейс Consumer, який виконує операцію над кожним елементом потоку.
Практичний приклад
Фабрика повинна перевірити продукти, щоб переконатися, що їхні назви починаються з "product-" і відповідають певному шаблону. Одночасно потрібно залогувати всі продукти у списку. Коректні продукти мають бути зібрані у список і виведені на консоль.
Main.java
123456789101112131415161718192021package com.example; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> items = Arrays.asList("product-H31KD", "product-A12ZX", "item-X99KD", "product-B67QF", "product-12345", "invalidData"); // Example of using peek for logging and collecting filtered elements into a new list List<String> validProducts = items.stream() .peek(item -> System.out.println("Checking item: " + item)) .filter(item -> item.startsWith("product-")) .toList(); // Collecting filtered elements into a list // Printing the list of validated products System.out.println("List of validated products: " + validProducts); } }
Код фільтрує елементи зі списку items, залишаючи лише ті, що починаються з "product-". Метод peek() логгує кожен перевірений елемент, а коректні продукти збираються у список і виводяться на консоль.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат