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

В Java Stream API методы делятся на промежуточные (intermediate) и терминальные (terminal).

Короткий ответ

Что ответить на собеседовании

В Java Stream API методы делятся на промежуточные (intermediate) и терминальные (terminal).

Подробный разбор

Ответ с пояснениями

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее