Sobes.tech
Junior — Middle

Vai datu plūsma tiks bez galīgās darbības uzsākšanas?

sobes.tech AI

Atbilde no AI

Java valodā datu plūsma (stream) netiks izpildīta bez galīgās operācijas (terminal operation) izsaukšanas. Java plūsmas ir slinkas: starpposma operācijas (piemēram, map, filter) tikai apraksta pārveidojumus, bet nekavējoties netiek izpildītas.

Piemērs:

Stream<Integer> stream = Stream.of(1, 2, 3, 4)
    .filter(x -> x % 2 == 0)
    .map(x -> x * x);
// Šeit nekas nenotiek, jo nav galīgās operācijas

List<Integer> result = stream.collect(Collectors.toList()); // Galīgā operācija, sāk skaitļošanu

Bez galīgās operācijas (collect, forEach, reduce utt.) plūsma netiks apstrādāta un skaitļošana nenotiks.