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