以下代码段无法编译。如何使用如下所示的forEach
查找sum
?
private int Sum(ArrayList<Integer> inputs) {
int sum = 0;
inputs.stream().forEach(x -> sum += x);
return sum;
}
发布于 2018-10-14 00:37:35
这应该能起到作用:
private int Sum(ArrayList<Integer> inputs) {
return inputs.stream().mapToInt(Integer::intValue).sum();
}
编辑:
使用for-each
的问题是它是一个终端操作,这意味着它不会生成另一个中间流供我们处理。更好的方法是使用mapToInt
,它会生成一个IntStream
,我们可以很容易地在这个use上找到和。
https://stackoverflow.com/questions/52795031
复制相似问题