Метод sum()
доступен в примитивном потоке значений типа/| IntStream , а не
Поток <Целое число> . Мы можем использовать
mappoint() для преобразования целых чисел потока в
IntStream .
int sum = integers.stream().mapToInt(Integer::intValue).sum(); int sum = integers.stream().mapToInt(x -> x).sum();
Полный пример.
package com.mkyong.concurrency; import java.util.Arrays; import java.util.List; import java.util.stream.Stream; public class Java8Stream { public static void main(String[] args) { Listintegers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); int sum = integers.stream().mapToInt(Integer::intValue).sum(); System.out.println("Total : " + sum); Stream integers2 = Stream.iterate(1, n -> n + 1).limit(10); IntStream intStream = integers2.mapToInt(x -> x); int sum1 = intStream.sum(); System.out.println("Total : " + sum1); } }
Выход
Total : 55 Total : 55
Рекомендации
Оригинал: “https://mkyong.com/java8/java-how-to-sum-all-the-stream-integers/”