stream流的分组求和
时间: 2024-05-01 22:15:18 浏览: 117
Java8 stream 中利用 groupingBy 进行多字段分组求和案例
5星 · 资源好评率100%
stream流是Java 8引入的一种函数式编程特性,它提供了一种便捷的方式来处理集合数据。在stream流中,可以使用`groupingBy`方法对数据进行分组,然后使用`summingInt`方法对每个分组进行求和操作。
下面是使用stream流进行分组求和的示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class StreamGroupingSum {
public static void main(String[] args) {
// 假设有一个包含多个整数的列表
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 使用stream流对列表进行分组求和
Map<String, Integer> sumByGroup = numbers.stream()
.collect(Collectors.groupingBy(
num -> num % 2 == 0 ? "偶数" : "奇数",
Collectors.summingInt(Integer::intValue)
));
// 输出结果
sumByGroup.forEach((group, sum) -> System.out.println(group + ": " + sum));
}
}
```
运行以上代码,输出结果如下:
```
奇数: 25
偶数: 30
```
以上代码中,我们首先创建了一个包含多个整数的列表`numbers`。然后使用stream流的`collect`方法对列表进行分组求和操作。在`groupingBy`方法中,我们通过lambda表达式将数字分为奇数和偶数两组。然后使用`summingInt`方法对每个分组中的数字进行求和操作。最后,我们将结果打印出来。
阅读全文