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
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!