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