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.