sum()
方法在原始Int值流(如IntStream
,而不在Stream<Integer>
可用。 我们可以使用mapToInt()
将流整数转换为IntStream
。
int sum = integers.stream().mapToInt(Integer::intValue).sum();
int sum = integers.stream().mapToInt(x -> x).sum();
完整的例子。
Java8Stream.java
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) {
List<Integer> integers = 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<Integer> 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/