Traitement Intermédiaire avec la Méthode Peek()
La méthode peek() permet d’insérer une journalisation à l’étape de traitement sans modifier le flux de données, puis de poursuivre les opérations sur les éléments qui passent le filtrage nécessaire.
Stream<T> peek(Consumer<? super T> action);
Cette méthode accepte un objet implémentant l’interface Consumer, qui effectue une opération sur chaque élément du flux.
Exemple pratique
Une usine doit inspecter les produits afin de s'assurer que leurs noms commencent par "product-" et correspondent à un motif spécifique. Parallèlement, il est nécessaire de journaliser tous les produits de la liste. Les produits valides doivent être collectés dans une liste et affichés sur la console.
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); } }
Le code filtre les éléments de la liste items, en conservant uniquement ceux qui commencent par "product-". La méthode peek() journalise chaque élément vérifié, et les produits valides sont collectés dans une liste puis affichés sur la console.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.33
Traitement Intermédiaire avec la Méthode Peek()
Glissez pour afficher le menu
La méthode peek() permet d’insérer une journalisation à l’étape de traitement sans modifier le flux de données, puis de poursuivre les opérations sur les éléments qui passent le filtrage nécessaire.
Stream<T> peek(Consumer<? super T> action);
Cette méthode accepte un objet implémentant l’interface Consumer, qui effectue une opération sur chaque élément du flux.
Exemple pratique
Une usine doit inspecter les produits afin de s'assurer que leurs noms commencent par "product-" et correspondent à un motif spécifique. Parallèlement, il est nécessaire de journaliser tous les produits de la liste. Les produits valides doivent être collectés dans une liste et affichés sur la console.
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); } }
Le code filtre les éléments de la liste items, en conservant uniquement ceux qui commencent par "product-". La méthode peek() journalise chaque élément vérifié, et les produits valides sont collectés dans une liste puis affichés sur la console.
Merci pour vos commentaires !