Junior — Middle
Bude datový tok prováděn bez spuštění konečné operace?
sobes.tech AI
Odpověď od AI
V Java nebude datový proud (stream) prováděn bez volání konečné operace (terminal operation). Proudy v Java jsou líné: mezilehlé operace (například map, filter) pouze popisují transformace, ale neprovádějí se ihned.
Příklad:
Stream<Integer> stream = Stream.of(1, 2, 3, 4)
.filter(x -> x % 2 == 0)
.map(x -> x * x);
// Zde se nic neděje, protože chybí konečná operace
List<Integer> result = stream.collect(Collectors.toList()); // Konečná operace, spouští výpočty
Bez volání konečné operace (collect, forEach, reduce apod.) nebude proud zpracován a výpočty se neuskuteční.