Sobes.tech
Назад к вопросам
Senior
3

Что такое промежуточные и терминальные методы в стримах?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

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 символов