Назад к вопросам
IT One
Senior
3
Что такое промежуточные и терминальные методы в стримах?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Java Stream API методы делятся на промежуточные (intermediate) и терминальные (terminal).
-
Промежуточные методы возвращают новый стрим и позволяют строить цепочку операций. Они ленивы, то есть не выполняются сразу, а только при вызове терминального метода. Примеры:
filter(),map(),sorted(),distinct(). -
Терминальные методы запускают обработку стрима и возвращают результат (не стрим). После их вызова цепочка завершается. Примеры:
collect(),forEach(),reduce(),count().
Пример:
List<String> names = List.of("Anna", "Bob", "Charlie", "David");
long count = names.stream() // промежуточный метод stream()
.filter(name -> name.length() > 3) // промежуточный метод filter()
.count(); // терминальный метод count()
System.out.println(count); // Выведет количество имен длиннее 3 символов