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