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