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