ExpertiDict

Java · Intermediário · Português · Técnico

avaliação preguiçosa

/avaljaˈsɐ̃w pɾeɡiˈsozɐ/substantivo

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ó 1

Exemplos

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

Veja também

Todos os termos de Java