Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpStTm 38 of 322 menu
◀ ▶

Конечная операция потока в Java

Конечная операция - команда в конце цепочки, которой нужен конкретный ответ: список, число, один элемент. Именно она запускает реальный обход данных, описанных промежуточными шагами.

Один и тот же отбор можно завершить сбором списка или подсчетом длины:

import java.util.List; public class Main { public static void main(String[] args) { List<Integer> nums = List.of(3, 8, 1, 12, 5); List<Integer> picked = nums.stream() .filter(n -> n > 4) .toList(); long amount = nums.stream() .filter(n -> n > 4) .count(); System.out.println(picked); System.out.println(amount); } }

Метод toList материализует элементы, count считает их без сохранения всего набора в память. Обе команды идут по одной и той же цепочке отбора.

Другие частые конечные шаги: взять первый элемент или сложить числа через свертку:

import java.util.List; public class Main { public static void main(String[] args) { List<Integer> nums = List.of(3, 8, 1, 12, 5); int top = nums.stream() .filter(n -> n > 4) .findFirst() .orElse(0); int total = nums.stream() .filter(n -> n > 4) .reduce(0, Integer::sum); System.out.println(top); System.out.println(total); } }

Метод findFirst останавливает обход, как только найден подходящий элемент. Свертка проходит все отобранные значения и накапливает итог.

Дан код:

var nums = List.of(10, 2, 7, 15, 4);

Оставьте числа не меньше семи. Выведите список отобранных значений и их количество двумя конечными командами.

Для списка List.of(1, 9, 3, 6, 11) постройте цепочку с отбором больше пяти. Выведите первый подходящий элемент и сумму всех подходящих.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить