Elaborazione Intermedia con il Metodo Peek()
Il metodo peek() consente di inserire log nella fase di elaborazione senza modificare il flusso di dati, permettendo poi di proseguire con le operazioni sugli elementi che superano il necessario filtro.
Stream<T> peek(Consumer<? super T> action);
Questo metodo accetta un oggetto che implementa l'interfaccia Consumer, il quale esegue un'operazione su ciascun elemento del flusso.
Esempio pratico
Una fabbrica deve ispezionare i prodotti per assicurarsi che i loro nomi inizino con "product-" e corrispondano a uno specifico pattern. Allo stesso tempo, è necessario registrare tutti i prodotti nell'elenco. I prodotti validi devono essere raccolti in una lista e stampati sulla console.
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); } }
Il codice filtra gli elementi dalla lista items, mantenendo solo quelli che iniziano con "product-". Il metodo peek() registra ogni elemento controllato e i prodotti validi vengono raccolti in una lista e stampati sulla console.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Elaborazione Intermedia con il Metodo Peek()
Scorri per mostrare il menu
Il metodo peek() consente di inserire log nella fase di elaborazione senza modificare il flusso di dati, permettendo poi di proseguire con le operazioni sugli elementi che superano il necessario filtro.
Stream<T> peek(Consumer<? super T> action);
Questo metodo accetta un oggetto che implementa l'interfaccia Consumer, il quale esegue un'operazione su ciascun elemento del flusso.
Esempio pratico
Una fabbrica deve ispezionare i prodotti per assicurarsi che i loro nomi inizino con "product-" e corrispondano a uno specifico pattern. Allo stesso tempo, è necessario registrare tutti i prodotti nell'elenco. I prodotti validi devono essere raccolti in una lista e stampati sulla console.
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); } }
Il codice filtra gli elementi dalla lista items, mantenendo solo quelli che iniziano con "product-". Il metodo peek() registra ogni elemento controllato e i prodotti validi vengono raccolti in una lista e stampati sulla console.
Grazie per i tuoi commenti!