java - 在 Java 8 中对两个 ArrayList 进行乘法和求和

标签 java java-8 java-stream

我有两个 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 表达式等)来实现我上面所做的计算总和?

最佳答案

int sum = 
    IntStream.range(0, min(a.size(), b.size())
             .map(i -> a.get(i) * b.get(i))
             .sum();

关于java - 在 Java 8 中对两个 ArrayList 进行乘法和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31095582/

相关文章:

java - 不幸的是(应用程序)已停止 Android 开发者错误

java - 使用 Java 8 处理和拆分大文件

java - 合并包含集合的映射会抛出 UnsupportedOperationException

java - 如何在 JPA 对象上使用 Java Stream API?

java - 是否有更优雅的方法来从流中选择 max 或 min 方法?

java - 引用对象时垃圾收集器不会运行。哪个对象?

java - 如何将复选框选项保存到数据库中?

Java 8 Stream - 对 Collection 中具有相同 id 的对象的操作

java - 按集合中的内部集合元素类型分组

java - 我可以像这样实现单例模式吗?