<分区>
以下代码段无法编译。如何使用 forEach
找到 sum
,如下所示?
private int Sum(ArrayList<Integer> inputs) {
int sum = 0;
inputs.stream().forEach(x -> sum += x);
return sum;
}
<分区>
以下代码段无法编译。如何使用 forEach
找到 sum
,如下所示?
private int Sum(ArrayList<Integer> inputs) {
int sum = 0;
inputs.stream().forEach(x -> sum += x);
return sum;
}
最佳答案
这应该可以解决问题:
private int Sum(ArrayList<Integer> inputs) {
return inputs.stream().mapToInt(Integer::intValue).sum();
}
编辑:
使用for-each
的问题在于它是一个终端操作,这意味着它不会产生另一个中间流供我们处理。更好的方法是使用 mapToInt
生成一个 IntStream
,我们可以在上面轻松找到总和。
关于java - 如何在 Java 中使用 forEach 和 lambda 表达式求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52795031/
相关文章:
java - Android Webview : Cannot call determinedVisibility() - never saw a connection for the pid
java - Guava.Objects.hashCode 与 Java.Objects.hashCode
java - 如何解决 `jack.import.type.policy` 的区域设置问题?
java - 我可以使用 Apache Camel 调用 Web 服务并返回响应吗?
java - Apache Beam 使用多个表时有多少写入次数
c++ - 从 cpprest lambda 表达式访问自动变量
lambda - Prolog - 将一个列表与一个元素相乘,结果带有一个奇怪的尾部?