java8 对集合的某个值求和、
时间: 2023-05-04 14:02:04 浏览: 289
java8实现list集合中按照某一个值相加求和,平均值等操作代码
Java8 引入了 Stream API,这个 API 提供了丰富的操作集合的方法,其中包括计算集合中某个值的和。
具体实现是通过 Stream 对象的 `reduce` 方法来完成的,该方法接收一个 BinaryOperator 参数来处理 Stream 中的每一个元素,将它们累加到一个累加器中,最终得到集合中某个值的总和。
以下是一个例子,假设一个 `List<Integer>` 存放了一些整数,我们需要取得它们的和:
```java
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
int sum = nums.stream().reduce(0, (a, b) -> a + b);
System.out.println(sum); // 输出 15
```
在上述例子中,`reduce` 方法的第一个参数 `0` 是初始累加器的值,表示从 0 开始计算和;第二个参数 `(a, b) -> a + b` 是一个 Lambda 表达式,表示将 a 和 b 相加并返回结果。这个方法返回的结果即为所有元素的总和。
需要注意的是,`reduce` 方法是一个终止操作,调用它将会执行 Stream 操作,因此一旦调用 `reduce` 方法,就不能继续对 Stream 进行其他操作。同时,BinaryOperator 必须是一个关联的、可交换的函数,否则计算结果可能与预期不一致。
阅读全文