Junior — Middle
Milyen viselkedés mutatkozik a Stream API-ban, ha hiányzik a végső művelet?
sobes.tech MI
Válasz az MI-től
A Java Stream API-ban a műveletek köztes és végső műveletekre vannak osztva. A köztes műveletek (pl. filter, map) késlekedőek, és nem hajtódnak végre, amíg nem hívják meg a végső műveletet (pl. collect, forEach).
Ha a végső művelet nem kerül meghívásra, a stream nem lesz feldolgozva, és nem történik számítás. Ez azt jelenti, hogy a köztes műveletek láncolata csak a stream leírását hozza létre, de nem hajtódik végre.
Példa:
Stream.of(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 2);
// Egyik elem sem lesz feldolgozva, mivel nincs végső művelet
A feldolgozás elindításához meg kell hívni egy végső műveletet:
List<Integer> result = Stream.of(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 2)
.collect(Collectors.toList());
Végső művelet nélkül a stream nem fog végrehajtódni.