Java · Intermediário · Português · Técnico
avaliação preguiçosa
Característica dos streams em que as operações intermediárias só rodam quando uma operação terminal pede o resultado, processando elemento a elemento.
Onde usar
Explica por que um stream sem collect ou forEach não faz nada e por que findFirst não percorre a lista inteira.
Em código
Stream.of(1, 2, 3).peek(System.out::println);
// nada impresso: falta operação terminal
Stream.of(1, 2, 3)
.peek(System.out::println)
.findFirst(); // imprime só 1Exemplos
Nada foi impresso porque o stream é preguiçoso e faltou a operação terminal.
Graças à avaliação preguiçosa, o findFirst para no primeiro elemento.
Cuidado
Não use peek para efeitos colaterais importantes: sem operação terminal ele nem executa, e a ordem de execução é difícil de prever.
Sinônimos
lazy evaluation
Antônimos
avaliação ansiosa