Junior — Middle
Folyamat fog adatfolyam futni végső művelet indítása nélkül?
sobes.tech MI
Válasz az MI-től
Java-ban egy adatfolyam (stream) nem fog végrehajtódni végső művelet (terminal operation) hívása nélkül. A Java-ban az adatfolyamok lusták: közbenső műveletek (pl. map, filter) csak átalakításokat írnak le, de nem hajtódnak végre azonnal.
Példa:
Stream<Integer> stream = Stream.of(1, 2, 3, 4)
.filter(x -> x % 2 == 0)
.map(x -> x * x);
// Itt semmi sem történik, mert nincs végső művelet
List<Integer> result = stream.collect(Collectors.toList()); // Végső művelet, elindítja a számításokat
Végső művelet (collect, forEach, reduce stb.) hívása nélkül a stream nem lesz feldolgozva, és a számítások nem történnek meg.