stream分组之后求和
时间: 2023-10-28 09:05:24 浏览: 108
使用Java 8的Stream进行分组求和的方法如下:
1. 首先,将需要处理的数据通过Stream流转换为一个Map,以便后续的分组操作。例如,假设我们有一个List<Map<String, Object>>的数据集合,其中包含了需要分组的字段和需要求和的字段。
2. 使用Collectors.groupingBy()方法按照指定的分组字段进行分组,并使用Collectors.summingDouble()方法对分组后的每组数据进行求和。这个方法会返回一个Map,其中键是分组字段的值,值是对应分组求和的结果。
3. 可以使用forEach()方法遍历上一步得到的Map,并将每个分组的值和求和结果存储到一个新的数据结构中,比如List<Map<String, Object>>。
下面是示例代码:
```java
List<Map<String, Object>> listData1 = new ArrayList<>();
collect.stream().collect(
Collectors.groupingBy(
map -> map.get("putoutStackingTime"),
Collectors.summingDouble(m -> Double.valueOf(m.get("actNeyWeight").toString()))
)
).forEach((k, v) -> {
Map<String, Object> mapData = new HashMap<>();
mapData.put("putoutStackingTime", k);
mapData.put("actNeyWeight", v);
listData1.add(mapData);
});
```
这段代码将根据"putoutStackingTime"字段进行分组,并对每组的"actNeyWeight"字段进行求和。最后将分组结果存储到listData1中。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)