Junior — Middle
În ce momente are loc inițializarea Stream atunci când se utilizează API-ul Stream?
sobes.tech AI
Răspuns de la AI
Inițializarea unui Stream în Java are loc în momentul în care se apelează o operație terminală. Până în acel moment, operațiile asupra Stream-ului sunt leneșe (lazy) și nu se execută.
Adică, atunci când creezi un Stream și aplici operații intermediare (de exemplu, filter(), map()), acestea doar formează un lanț de procesare, dar nu pornesc calculele.
Exemplu:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Aici nu se întâmplă nimic
List<String> result = stream.collect(Collectors.toList()); // Operație terminală
// Aici are loc procesarea elementelor
Prin urmare, Stream-ul este inițializat și începe să proceseze datele doar atunci când se apelează o operație terminală, cum ar fi collect(), forEach(), reduce(), etc.