Junior — Middle
Em que momentos ocorre a inicialização do Stream ao usar a API Stream?
sobes.tech IA
Resposta da IA
A inicialização de um Stream em Java ocorre no momento em que é chamada uma operação terminal. Até esse momento, as operações sobre o Stream são preguiçosas (lazy) e não são executadas.
Ou seja, quando você cria um Stream e aplica operações intermediárias (por exemplo, filter(), map()), elas apenas formam uma cadeia de processamento, mas não iniciam cálculos.
Exemplo:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Nada acontece aqui
List<String> result = stream.collect(Collectors.toList()); // Operação terminal
// Aqui ocorre o processamento dos elementos
Portanto, o Stream é inicializado e começa a processar os dados somente ao chamar uma operação terminal, como collect(), forEach(), reduce(), etc.