小编stk*_*305的帖子

通过对值进行合并,将地图列表合并到单个地图中

我有一个类值:

public class Values {
    private int count;
    private int values;
}
Run Code Online (Sandbox Code Playgroud)

以及多个类型的地图列表 Map<String, Values>

Map<String, Values> map1 = new HashMap<>();
        map1 .put("aaa", new Values(1, 10));
        map1 .put("bbb", new Values(5, 50));
        map1 .put("ccc", new Values(2, 30));

Map<String, Values> map2= new HashMap<>();
        map2.put("aaa", new Values(2, 20));
        map2.put("bbb", new Values(3, 50));
        map2.put("ccc", new Values(3, 10));

List<Map<String, Values>> list = Arrays.asList(map1, map2);
Run Code Online (Sandbox Code Playgroud)

地图中可以有任意数量的地图和任意数量的条目,但地图的键始终相同,只有值可以不同.为清晰起见,我的示例仅包含2个地图,每个地图仅包含3个条目.

我想获得一个具有相同键的单个映射,并使用Values对象作为对象中每个"count"和每个"value"的总和,如下所示:

{
        aaa= {
            count = 3,
            value = 30
        },
        bbb= {
            count = 8,
            value = 100
        }, …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

12
推荐指数
2
解决办法
381
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1