Junior — Middle
111
Care este diferența dintre operatorii intermediari și cei terminali în fluxurile de date sau secvențe?
Companiile au fost întrebate
айтеко
Răspuns de la AI
sobes.tech AI
Промежуточные операторы (intermediate) в потоках данных (Streams в Java) — это операции, которые возвращают новый поток и позволяют строить цепочку вызовов. Они ленивы, то есть не выполняются сразу, а только при вызове терминального оператора. Примеры: filter(), map(), sorted().
Терминальные операторы (terminal) — это операции, которые завершают обработку потока, возвращают результат или побочный эффект и запускают выполнение всей цепочки. После терминального оператора поток нельзя использовать. Примеры: collect(), forEach(), reduce(), count().
Пример:
List<String> list = List.of("a", "bb", "ccc");
long count = list.stream()
.filter(s -> s.length() > 1) // промежуточный оператор
.count(); // терминальный оператор
Здесь filter не выполняется сразу, а только когда вызывается count.