Intermediär Bearbetning med Peek()-Metoden
Metoden peek() möjliggör införande av loggning i bearbetningssteget utan att ändra datastreamen, och därefter fortsätta med operationer på element som passerar nödvändig filtrering.
Stream<T> peek(Consumer<? super T> action);
Denna metod tar emot ett objekt som implementerar Consumer-gränssnittet, vilket utför en operation på varje streamelement.
Praktiskt exempel
En fabrik behöver inspektera produkter för att säkerställa att deras namn börjar med "product-" och matchar ett specifikt mönster. Samtidigt önskas en loggning av alla produkter i listan. Giltiga produkter ska samlas i en lista och skrivas ut till konsolen.
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 filtrerar element från listan items och behåller endast de som börjar med "product-". Metoden peek() loggar varje kontrollerat element, och de giltiga produkterna samlas i en lista och skrivs ut till konsolen.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.33
Intermediär Bearbetning med Peek()-Metoden
Svep för att visa menyn
Metoden peek() möjliggör införande av loggning i bearbetningssteget utan att ändra datastreamen, och därefter fortsätta med operationer på element som passerar nödvändig filtrering.
Stream<T> peek(Consumer<? super T> action);
Denna metod tar emot ett objekt som implementerar Consumer-gränssnittet, vilket utför en operation på varje streamelement.
Praktiskt exempel
En fabrik behöver inspektera produkter för att säkerställa att deras namn börjar med "product-" och matchar ett specifikt mönster. Samtidigt önskas en loggning av alla produkter i listan. Giltiga produkter ska samlas i en lista och skrivas ut till konsolen.
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 filtrerar element från listan items och behåller endast de som börjar med "product-". Metoden peek() loggar varje kontrollerat element, och de giltiga produkterna samlas i en lista och skrivs ut till konsolen.
Tack för dina kommentarer!