Проміжна Обробка за Допомогою Методу 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() логгує кожен перевірений елемент, а коректні продукти збираються у список і виводяться на консоль.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.33
Проміжна Обробка за Допомогою Методу 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() логгує кожен перевірений елемент, а коректні продукти збираються у список і виводяться на консоль.
Дякуємо за ваш відгук!