用java8的流的方式呢
时间: 2024-02-25 16:51:50 浏览: 12
当然可以使用 Java 8 的流式编程方式来实现该需求,代码如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
list.add(new HashMap<String, Object>() {{
put("name", "a");
put("num", 5);
}});
list.add(new HashMap<String, Object>() {{
put("name", "b");
put("num", 2);
}});
list.add(new HashMap<String, Object>() {{
put("name", "a");
put("num", 15);
}});
list.add(new HashMap<String, Object>() {{
put("name", "b");
put("num", 8);
}});
list.add(new HashMap<String, Object>() {{
put("name", "a");
put("num", 6);
}});
List<Map<String, Object>> result = list.stream()
.collect(
Collectors.groupingBy(
item -> item.get("name"),
Collectors.summingInt(item -> (int) item.get("num"))
)
)
.entrySet().stream()
.map(entry -> {
Map<String, Object> item = new HashMap<>();
item.put("name", entry.getKey());
item.put("num", entry.getValue());
return item;
})
.collect(Collectors.toList());
System.out.println(result);
}
}
```
上述代码中,我们使用了 Java 8 的流式编程方式,首先将列表 `list` 转成一个 Map,其中键为 `name`,值为 `num` 的总和。这里使用了 `Collectors.groupingBy` 和 `Collectors.summingInt` 来实现。接下来,我们将转换后的 Map 转成一个结果列表 `result`,其中每个元素也是一个 Map,包含了 `name` 和 `num` 两个字段。这里使用了 `Stream.map` 来实现。
希望我的回答能够帮到您!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)