IntStream.sum()
Складывает все числа потока.
Доступно с: Java 8
Синтаксис
int sum()Возвращаемое значение
intСумма элементов; `0` для пустого потока.
Примеры
Сумма чисел и сумма полей:
record Item(String name, int qty) {}
void main() {
IO.println(IntStream.of(4, 8, 15).sum());
var cart = List.of(new Item("tea", 2), new Item("milk", 3));
IO.println(cart.stream().mapToInt(Item::qty).sum());
}Результат:
27
5Примечания
Метод есть только у числовых потоков (IntStream, LongStream, DoubleStream), поэтому из Stream<Integer> сначала переходят через mapToInt(). При переполнении int результат «перескакивает» в отрицательные значения без ошибки — для больших сумм используйте mapToLong().
См. также
- IntStream.average() — Вычисляет среднее арифметическое чисел потока.
- Stream.mapToInt() — Превращает поток объектов в поток чисел `int`.
- Stream.reduce() — Сворачивает все элементы потока в одно значение.
- Collectors.summingInt() — Сборщик, который суммирует числовое поле элементов.
Вопросы и ответы по теме
В учебнике
- Операции над потоками — Основные операции Stream API — filter, map, sorted, distinct, limit, skip, count, reduce, anyMatch, findFirst и числовые потоки.