Junior — Middle
Ar duomenų srautas bus vykdomas be galutinės operacijos paleidimo?
sobes.tech AI
Atsakymas iš AI
Java kalba duomenų srautas (stream) nebus vykdomas be galutinės operacijos (terminal operation) iškvietimo. Java srautai yra tingūs: tarpinės operacijos (pvz., map, filter) tik apibūdina transformacijas, bet nedelsiant nevykdomos.
Pavyzdys:
Stream<Integer> stream = Stream.of(1, 2, 3, 4)
.filter(x -> x % 2 == 0)
.map(x -> x * x);
// Čia nieko nevyksta, nes nėra galutinės operacijos
List<Integer> result = stream.collect(Collectors.toList()); // Galutinė operacija, pradeda skaičiavimus
Be galutinės operacijos (collect, forEach, reduce ir kt.) srautas nebus apdorotas ir skaičiavimai neįvyks.