Sobes.tech
Junior — Middle

Que comportamento se manifesta na API Stream se faltar uma operação terminal?

sobes.tech IA

Resposta da IA

Na API de Streams do Java, as operações são divididas em intermédias e terminais. As operações intermédias (por exemplo, filter, map) são preguiçosas e não são executadas até que uma operação terminal (por exemplo, collect, forEach) seja chamada.

Se a operação terminal não for chamada, o fluxo não será processado e nenhum cálculo ocorrerá. Isso significa que a cadeia de operações intermédias apenas criará uma descrição do fluxo, mas não o executará.

Exemplo:

Stream.of(1, 2, 3, 4)
    .filter(n -> n % 2 == 0)
    .map(n -> n * 2);
// Nenhum elemento será processado, pois não há operação terminal

Para iniciar o processamento, é necessário chamar uma operação terminal:

List<Integer> result = Stream.of(1, 2, 3, 4)
    .filter(n -> n % 2 == 0)
    .map(n -> n * 2)
    .collect(Collectors.toList());

Sem uma operação terminal, o fluxo não é executado.