Processamento Intermediário com o Método peek()
O método peek() permite inserir logs na etapa de processamento sem alterar o fluxo de dados, possibilitando a continuidade das operações nos elementos que passam pela filtragem necessária.
Stream<T> peek(Consumer<? super T> action);
Este método aceita um objeto que implementa a interface Consumer, o qual executa uma operação em cada elemento do fluxo.
Exemplo Prático
Uma fábrica precisa inspecionar produtos para garantir que seus nomes comecem com "product-" e correspondam a um padrão específico. Ao mesmo tempo, é necessário registrar todos os produtos na lista. Os produtos válidos devem ser coletados em uma lista e impressos no 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); } }
O código filtra elementos da lista items, mantendo apenas aqueles que começam com "product-". O método peek() registra cada elemento verificado, e os produtos válidos são coletados em uma lista e impressos no console.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Processamento Intermediário com o Método peek()
Deslize para mostrar o menu
O método peek() permite inserir logs na etapa de processamento sem alterar o fluxo de dados, possibilitando a continuidade das operações nos elementos que passam pela filtragem necessária.
Stream<T> peek(Consumer<? super T> action);
Este método aceita um objeto que implementa a interface Consumer, o qual executa uma operação em cada elemento do fluxo.
Exemplo Prático
Uma fábrica precisa inspecionar produtos para garantir que seus nomes comecem com "product-" e correspondam a um padrão específico. Ao mesmo tempo, é necessário registrar todos os produtos na lista. Os produtos válidos devem ser coletados em uma lista e impressos no 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); } }
O código filtra elementos da lista items, mantendo apenas aqueles que começam com "product-". O método peek() registra cada elemento verificado, e os produtos válidos são coletados em uma lista e impressos no console.
Obrigado pelo seu feedback!