Junior — Middle
Bude tok údajov vykonaný bez spustenia konečnej operácie?
sobes.tech AI
Odpoveď od AI
V Java-ju sa tok podatkov (stream) ne bo izveden brez klica na končno operacijo (terminal operation). Tokovi v Java-ju so leni: začasne operacije (npr. map, filter) opisujejo le transformacije, vendar se ne izvajajo takoj.
Primer:
Stream<Integer> stream = Stream.of(1, 2, 3, 4)
.filter(x -> x % 2 == 0)
.map(x -> x * x);
// Tukaj se ne zgodi nič, ker ni končne operacije
List<Integer> result = stream.collect(Collectors.toList()); // Končna operacija, začne izračune
Brez klica na končno operacijo (collect, forEach, reduce itd.) tok ne bo obdelan in izračuni se ne bodo zgodili.