Sobes.tech
Junior — Middle

Hogyan történik az adatok közbenső szakaszainak azonosítása az adatfolyam műveletekben?

sobes.tech MI

Válasz az MI-től

A Java Stream API-ban a közbenső műveletek (intermediate operations) lusta természetük miatt azonosíthatók: új áramlatot (Stream) adnak vissza, és nem indítják el az adatok feldolgozását azonnal. Ez megkülönbözteti őket a terminális műveletektől, amelyek elindítják a számításokat.

A közbenső műveleteket úgy lehet felismerni, hogy visszaadnak egy Streamet, és lehetővé teszik a hívások láncolását, például:

Stream<String> stream = list.stream()
    .filter(s -> s.startsWith("A"))  // közbenső művelet
    .map(String::toUpperCase);         // közbenső művelet

Itt a filter és a map közbenső műveletek, nem hajtják végre azonnal a feldolgozást, csak egy csővezetéket (pipeline) alkotnak. A feldolgozás csak akkor kezdődik, amikor egy terminális műveletet hívunk, például collect vagy forEach.

Ezért a közbenső szakaszok azonosítása a visszatérési típusuk (Stream) és a lusta viselkedésük alapján történik.