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

Свертка значений потока в Java

Метод reduce сворачивает поток в одно значение: сумму, произведение, самую длинную строку. Передают функцию, которая объединяет накопленный результат с очередным элементом.

Сумму чисел можно получить так:

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

Форма без начального значения возвращает Optional. Она подходит, когда пустой поток должен дать пустой ответ, а не ноль:

import java.util.List; import java.util.Optional; public class Main { public static void main(String[] args) { List<Integer> nums = List.of(4, 5, 6); Optional<Integer> max = nums.stream() .reduce(Integer::max); System.out.println(max.orElse(0)); } }

Дан код:

var nums = List.of(1, 2, 3, 4, 5);

Посчитайте произведение всех чисел с начальным значением 1.

Дан код:

var strings = List.of("go", "java", "io");

Сложите их длины в одно число и выведите результат.

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