Intermediær Behandling med peek()-Metoden
Stryg for at vise menuen
Metoden peek() muliggør indsættelse af logning i behandlingsfasen uden at ændre datastreamen, hvorefter der kan 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 specifikt mønster. Samtidig ønskes det 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. peek()-metoden 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
Intermediær Behandling med peek()-Metoden
Metoden peek() muliggør indsættelse af logning i behandlingsfasen uden at ændre datastreamen, hvorefter der kan 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 specifikt mønster. Samtidig ønskes det 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. peek()-metoden logger hvert kontrolleret element, og de gyldige produkter samles i en liste og udskrives til konsollen.
Tak for dine kommentarer!