【发布时间】:2015-06-28 02:32:06
【问题描述】:
我有两个大小相等的 ArrayList,分别命名为 A 和 B,其中包含一些数字。现在我想计算这样的东西:
int sum = 0;
for(int i=0; i<A.size() && i<B.size(); i++) {
sum += A.get(i)*B.get(i);
}
如何在不使用任何额外的用户定义方法的情况下使用 Java 8 功能(流、lambda 表达式等)来计算总和?
【问题讨论】:
-
如果您解释为什么循环不被您接受,您可能会得到更好的答案,但您可以使用
IntStream.range(0, A.size()).map(i -> A.get(i) * B.get(i)).sum()的循环的相当字面意思的流翻译。 -
只是为了良好的编程测量:我没有看到任何证据表明 A 和 B 的大小相同。
-
@JeffreyBosboom 我对使用循环没有任何问题。我问它是因为我正在学习 Java 8 功能,应该在帖子中包含它。
标签: java java-8 java-stream