Mellomliggende Behandling med Peek()-Metoden
Metoden peek() gjør det mulig å legge inn logging i prosesseringstrinnet uten å endre datastrømmen, og deretter fortsette med operasjoner på elementene som passerer nødvendig filtrering.
Stream<T> peek(Consumer<? super T> action);
Denne metoden aksepterer et objekt som implementerer Consumer-grensesnittet, og utfører en operasjon på hvert strømelement.
Praktisk eksempel
En fabrikk må inspisere produkter for å sikre at deres navn starter med "product-" og samsvarer med et spesifikt mønster. Samtidig ønskes det å loggføre alle produkter i listen. Gyldige produkter skal samles i en liste og skrives ut 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 listen items, og beholder kun de som starter med "product-". Metoden peek() logger hvert kontrollerte element, og de gyldige produktene samles i en liste og skrives ut til konsollen.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Mellomliggende Behandling med Peek()-Metoden
Sveip for å vise menyen
Metoden peek() gjør det mulig å legge inn logging i prosesseringstrinnet uten å endre datastrømmen, og deretter fortsette med operasjoner på elementene som passerer nødvendig filtrering.
Stream<T> peek(Consumer<? super T> action);
Denne metoden aksepterer et objekt som implementerer Consumer-grensesnittet, og utfører en operasjon på hvert strømelement.
Praktisk eksempel
En fabrikk må inspisere produkter for å sikre at deres navn starter med "product-" og samsvarer med et spesifikt mønster. Samtidig ønskes det å loggføre alle produkter i listen. Gyldige produkter skal samles i en liste og skrives ut 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 listen items, og beholder kun de som starter med "product-". Metoden peek() logger hvert kontrollerte element, og de gyldige produktene samles i en liste og skrives ut til konsollen.
Takk for tilbakemeldingene dine!