Junior — Middle
Czy przepływ danych będzie wykonywał się bez uruchomienia operacji końcowej?
sobes.tech AI
Odpowiedź od AI
W Java strumień danych (stream) nie zostanie wykonany bez wywołania operacji końcowej (terminal operation). Strumienie w Java są leniwe: operacje pośrednie (np. map, filter) opisują tylko transformacje, ale nie są wykonywane od razu.
Przykład:
Stream<Integer> stream = Stream.of(1, 2, 3, 4)
.filter(x -> x % 2 == 0)
.map(x -> x * x);
// Tutaj nic się nie dzieje, ponieważ nie ma operacji końcowej
List<Integer> result = stream.collect(Collectors.toList()); // Operacja końcowa, uruchamia obliczenia
Bez wywołania operacji końcowej (collect, forEach, reduce itp.) strumień nie zostanie przetworzony, a obliczenia nie zostaną wykonane.