Mellemliggende Behandling med Peek()-Metoden
Metoden peek() giver mulighed for at indsætte logning på behandlingsstadiet uden at ændre datastreamen, hvorefter der fortsættes med operationer på elementer, der opfylder den nødvendige filtrering.
Stream<T> peek(Consumer<? super T> action);
Denne metode accepterer et objekt, der implementerer Consumer-interfacet, som udfører en operation på hvert streamelement.
Praktisk eksempel
En fabrik skal inspicere produkter for at sikre, at deres navne starter med "product-" og matcher et bestemt mønster. Samtidig ønskes der at logge alle produkter i listen. Gyldige produkter skal samles i en liste og udskrives til konsollen.
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); } }
Koden filtrerer elementer fra items-listen, så kun dem, der starter med "product-", bevares. Metoden peek() logger hvert kontrolleret element, og de gyldige produkter samles i en liste og udskrives til konsollen.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.33
Mellemliggende Behandling med Peek()-Metoden
Stryg for at vise menuen
Metoden peek() giver mulighed for at indsætte logning på behandlingsstadiet uden at ændre datastreamen, hvorefter der fortsættes med operationer på elementer, der opfylder den nødvendige filtrering.
Stream<T> peek(Consumer<? super T> action);
Denne metode accepterer et objekt, der implementerer Consumer-interfacet, som udfører en operation på hvert streamelement.
Praktisk eksempel
En fabrik skal inspicere produkter for at sikre, at deres navne starter med "product-" og matcher et bestemt mønster. Samtidig ønskes der at logge alle produkter i listen. Gyldige produkter skal samles i en liste og udskrives til konsollen.
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); } }
Koden filtrerer elementer fra items-listen, så kun dem, der starter med "product-", bevares. Metoden peek() logger hvert kontrolleret element, og de gyldige produkter samles i en liste og udskrives til konsollen.
Tak for dine kommentarer!