Gymterview
junior

Какие конечные методы работы со стримами вы знаете?

Конечные (терминальные) операции запускают обработку конвейера и возвращают результат — значение, коллекцию или void. После вызова терминальной операции стрим закрывается и повторно использоваться не может.

Основные терминальные операции

Метод Возвращает Описание
collect() Коллекция / структура данных Сбор результатов
toArray() Массив Преобразование в массив
forEach() void Действие над каждым элементом (порядок не гарантирован в parallel)
forEachOrdered() void Действие с гарантией порядка
reduce() Optional / значение Агрегация в одно значение
count() long Количество элементов
min() Optional Минимальный элемент по Comparator
max() Optional Максимальный элемент по Comparator
findFirst() Optional Первый элемент
findAny() Optional Любой элемент (полезен в parallel)
anyMatch() boolean Хотя бы один элемент удовлетворяет условию
allMatch() boolean Все элементы удовлетворяют условию
noneMatch() boolean Ни один элемент не удовлетворяет условию

Дополнительно для числовых стримов

Метод Описание
sum() Сумма всех чисел
average() Среднее арифметическое

Методы findFirst(), findAny(), anyMatch(), allMatch(), noneMatch() — short-circuiting: они могут завершить обработку, не дожидаясь всех элементов.

На собеседовании: перечислите хотя бы 7-8 методов, разделив их на категории: получение результата (collect, reduce, toArray), поиск (findFirst, findAny), проверка (anyMatch, allMatch, noneMatch), итерация (forEach).