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