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.