Sobes.tech
Junior — Middle

É possível aplicar repetidamente o método terminal a um único fluxo na API Stream para Java?

sobes.tech IA

Resposta da IA

Não, o método terminal na API de Streams do Java só pode ser aplicado uma vez a um fluxo. Após chamar um método terminal, o fluxo é considerado fechado, e reutilizar o mesmo fluxo resultará numa IllegalStateException.

Se precisar realizar várias operações, deve criar um novo fluxo a partir da coleção ou fonte de dados original.

Exemplo:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
long count = stream.count(); // método terminal
// stream.forEach(System.out::println); // causará uma IllegalStateException

// Correto:
list.stream().forEach(System.out::println);