Junior — Middle
Fluxul de date va fi executat fără a porni operația finală?
sobes.tech AI
Răspuns de la AI
În Java, un flux de date (stream) nu va fi executat fără apelarea unei operații terminale. Fluxurile în Java sunt leneșe: operațiile intermediare (de exemplu, map, filter) descriu doar transformări, dar nu sunt executate imediat.
Exemplu:
Stream<Integer> stream = Stream.of(1, 2, 3, 4)
.filter(x -> x % 2 == 0)
.map(x -> x * x);
// Aici nu se întâmplă nimic, deoarece nu există o operație terminală
List<Integer> result = stream.collect(Collectors.toList()); // Operație terminală, pornește calculele
Fără apelarea unei operații terminale (collect, forEach, reduce etc.), fluxul nu va fi procesat și calculele nu vor avea loc.