Junior — Middle
Quando é que a execução do processamento em fluxo com a coleção é iniciada?
sobes.tech IA
Resposta da IA
A execução do processamento de fluxo (stream) em Java ocorre no momento em que uma operação terminal é chamada. Até então, todas as operações intermediárias (map, filter, sorted, etc.) são preguiçosas e não são executadas.
Por exemplo:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Aqui, o fluxo ainda não foi iniciado
List<String> result = stream.collect(Collectors.toList()); // Operação terminal — inicia o processamento
Assim, o processamento de fluxo inicia-se quando uma operação terminal, como collect(), forEach(), reduce(), count() e similares, é chamada.