Junior — Middle
Kāds uzvedības modelis parādās Stream API, ja nav izsaukta galīgā operācija?
sobes.tech AI
Atbilde no AI
Java Stream API operācijas ir sadalītas starpposma un galīgajās operācijās. Starpposma operācijas (piemēram, filter, map) ir slinkas un netiek izpildītas, kamēr netiek izsaukta galīgā operācija (piemēram, collect, forEach).
Ja netiek izsaukta galīgā operācija, plūsma netiks apstrādāta un nenotiks nekādi aprēķini. Tas nozīmē, ka starpposma operāciju ķēde vienkārši izveidos plūsmas aprakstu, bet to neizpildīs.
Piemērs:
Stream.of(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 2);
// Nekas elements netiks apstrādāts, jo nav galīgās operācijas
Lai sāktu apstrādi, ir jāizsauc galīgā operācija:
List<Integer> result = Stream.of(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 2)
.collect(Collectors.toList());
Bez galīgās operācijas plūsma netiks izpildīta.