Välivaiheen Käsittely Peek()-Menetelmällä
Pyyhkäise näyttääksesi valikon
peek()-metodi mahdollistaa lokituksen lisäämisen käsittelyvaiheessa muuttamatta datavirtaa, minkä jälkeen voidaan jatkaa operaatioita niille alkioille, jotka läpäisevät tarvittavan suodatuksen.
Stream<T> peek(Consumer<? super T> action);
Tämä metodi ottaa vastaan olion, joka toteuttaa Consumer-rajapinnan ja suorittaa operaation jokaiselle virran alkiolle.
Käytännön esimerkki
Tehtaan tulee tarkastaa tuotteet varmistaakseen, että niiden nimet alkavat merkkijonolla "product-" ja vastaavat tiettyä kuviota. Samalla halutaan kirjata kaikki tuotteet listasta. Kelvolliset tuotteet kerätään listaan ja tulostetaan konsoliin.
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); } }
Koodi suodattaa elementit items-listasta, säilyttäen vain ne, jotka alkavat merkkijonolla "product-". peek()-metodi kirjaa jokaisen tarkastetun elementin, ja kelvolliset tuotteet kerätään listaan ja tulostetaan konsoliin.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme