Junior — Middle
Pode explicar o que significa o termo 'operação não terminal' ao trabalhar com fluxos de dados na API Stream?
sobes.tech IA
Resposta da IA
Na API Stream do Java, as operações dividem-se em terminais e não terminais (intermediárias).
Uma operação não terminal é aquela que devolve um novo fluxo (Stream) e não inicia o processamento de dados imediatamente. Serve para construir uma cadeia de transformações, por exemplo, filtragem, mapeamento, ordenação.
Exemplo de operações não terminais:
- filter()
- map()
- sorted()
- distinct()
Estas operações são preguiçosas: não são executadas até que uma operação terminal seja chamada, por exemplo, forEach(), collect(), count().
Exemplo:
List<String> list = Arrays.asList("a", "bb", "ccc");
list.stream()
.filter(s -> s.length() > 1) // não terminal
.map(String::toUpperCase) // não terminal
.forEach(System.out::println); // terminal
Assim, as operações não terminais permitem construir uma cadeia de transformações, e a terminal inicia a execução.