DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

8.4 Enxergando a execução do pipeline com peek

1 O que é peek?
O método peek permite visualizar a execução do pipeline, executando uma ação a cada elemento processado.

Ele não força a execução do Stream, pois é uma operação intermediária.

2 Exemplo de uso do peek

usuarios.stream()
.filter(u -> u.getPontos() > 100)
.peek(System.out::println)
.findAny();

O peek imprime apenas até encontrar um usuário com mais de 100 pontos, demonstrando o efeito do lazy evaluation.

3 peek vs forEach
forEach é uma operação terminal e força a execução do Stream.

peek é intermediário, então o código abaixo não imprime nada, pois não há operação terminal:

usuarios.stream()
.filter(u -> u.getPontos() > 100)
.peek(System.out::println); // Nenhuma saída

4 peek com sorted e operações stateful
Se usado com sorted, o peek imprime todos os usuários antes de findAny:

usuarios.stream()
.sorted(Comparator.comparing(Usuario::getNome))
.peek(System.out::println)
.findAny();

Isso acontece porque sorted é uma operação intermediária stateful, que pode precisar processar toda a lista antes de produzir um resultado.

Exemplo: ExemploPeek.java

Heroku

Built for developers, by developers.

Whether you're building a simple prototype or a business-critical product, Heroku's fully-managed platform gives you the simplest path to delivering apps quickly — using the tools and languages you already love!

Learn More

Top comments (0)

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE