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