Saindo de laços imperativos para pipelines declarativos de processamento de dados com a
Stream API: entendendo operações intermediárias e terminais, avaliação preguiçosa, coleta de resultados via
toList()/
collect, operações-chave
map,
filter,
sorted,
flatMap,
reduce, além de verificações
anyMatch/
allMatch/
noneMatch. Vamos comparar os estilos imperativo e funcional, analisar exemplos práticos e erros comuns, incluindo o uso inadequado de
forEach ao montar coleções e o
parallelStream() prematuro.