Zwischenverarbeitung mit der Peek()-Methode
Die Methode peek() ermöglicht das Einfügen von Protokollierung in der Verarbeitungsphase, ohne den Datenstrom zu verändern, und anschließend die Fortsetzung der Operationen an den Elementen, die die erforderliche Filterung bestehen.
Stream<T> peek(Consumer<? super T> action);
Diese Methode akzeptiert ein Objekt, das das Interface Consumer implementiert und eine Operation auf jedes Stromelement ausführt.
Praktisches Beispiel
Eine Fabrik muss Produkte überprüfen, um sicherzustellen, dass deren Namen mit "product-" beginnen und einem bestimmten Muster entsprechen. Gleichzeitig sollen alle Produkte in der Liste protokolliert werden. Gültige Produkte werden in einer Liste gesammelt und auf der Konsole ausgegeben.
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); } }
Der Code filtert Elemente aus der items-Liste und behält nur diejenigen, die mit "product-" beginnen. Die peek()-Methode protokolliert jedes überprüfte Element, und die gültigen Produkte werden in einer Liste gesammelt und auf der Konsole ausgegeben.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you show me the code example for this scenario?
What does the output look like after running this code?
Can you explain how peek() is different from forEach()?
Awesome!
Completion rate improved to 2.33
Zwischenverarbeitung mit der Peek()-Methode
Swipe um das Menü anzuzeigen
Die Methode peek() ermöglicht das Einfügen von Protokollierung in der Verarbeitungsphase, ohne den Datenstrom zu verändern, und anschließend die Fortsetzung der Operationen an den Elementen, die die erforderliche Filterung bestehen.
Stream<T> peek(Consumer<? super T> action);
Diese Methode akzeptiert ein Objekt, das das Interface Consumer implementiert und eine Operation auf jedes Stromelement ausführt.
Praktisches Beispiel
Eine Fabrik muss Produkte überprüfen, um sicherzustellen, dass deren Namen mit "product-" beginnen und einem bestimmten Muster entsprechen. Gleichzeitig sollen alle Produkte in der Liste protokolliert werden. Gültige Produkte werden in einer Liste gesammelt und auf der Konsole ausgegeben.
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); } }
Der Code filtert Elemente aus der items-Liste und behält nur diejenigen, die mit "product-" beginnen. Die peek()-Methode protokolliert jedes überprüfte Element, und die gültigen Produkte werden in einer Liste gesammelt und auf der Konsole ausgegeben.
Danke für Ihr Feedback!