Конечные методы стримов Java потребляют элементы стрима и производят результат:
forEach(Consumer<? super T> action): Выполняет действие для каждого элемента в стриме. Возвращает void.
java
forEachOrdered(Consumer<? super T> action): Выполняет действие для каждого элемента в стриме в заданном порядке.
java
toArray(): Собирает элементы стрима в массив Object[].
java
toArray(IntFunction<A[]> generator): Собирает элементы стрима в массив указанного типа.
java
reduce(BinaryOperator<T> accumulator): Объединяет элементы стрима с помощью функции-аккумулятора. Возвращает Optional<T>.
java
reduce(T identity, BinaryOperator<T> accumulator): Объединяет со стартовым значением.
java
reduce(U identity, BiFunction<U, ? super T, U> accumulator, BinaryOperator<U> combiner): Для параллельных стримов.
java
collect(Supplier<R> supplier, BiConsumer<R, ? super T> accumulator, BiConsumer<R, R> combiner): Мутирующее свертывание.
java
collect(Collector<? super T, A, R> collector): Свертывание с помощью Collector.
java
min(Comparator<? super T> comparator): Находит минимальный элемент. Возвращает Optional<T>.
java
max(Comparator<? super T> comparator): Находит максимальный элемент. Возвращает Optional<T>.
java
count(): Возвращает количество элементов в стриме. Возвращает long.
java
anyMatch(Predicate<? super T> predicate): Проверяет, соответствует ли хоть один элемент предикату. Возвращает boolean.
java
allMatch(Predicate<? super T> predicate): Проверяет, соответствуют ли все элементы предикату. Возвращает boolean.
java
noneMatch(Predicate<? super T> predicate): Проверяет, не соответствует ли ни один элемент предикату. Возвращает boolean.
java
findFirst(): Находит первый элемент в стриме. Возвращает Optional<T>.
java
findAny(): Находит любой элемент в стриме (особенно полезно для параллельных стримов). Возвращает Optional<T>.
java
Интерфейсы IntStream, LongStream, DoubleStream имеют свои специализированные конечные операции, такие как sum(), average(), summaryStatistics().
java