Sobes.tech
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.