使用java流更新Map值

nkcskrwz  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(254)

这个问题在这里已经有答案了

将对象列表转换为Map(1个答案)
java:如何将列表转换为Map(18个答案)
两天前关门了。
我需要帮助,通过使用java流来执行这个put-to-map操作,使这个java代码能够有效地为map添加值

class Pair{
    String key;
    int value;
 }

void addtoMap(List<Pair> list){
    Map<String, Integer> hashMap= new HashMap();
    list.forEach(pair -> {
        if(hashMap.containsKey(pair.key))
        {
            int p= hashMap.get(pair.key);
            hashMap.put(pair.key,p+pair.value)
        }
        else 
            hashMap.put(pair.key,pair.value);
    });
}

hashMap.put("a",1); [["a",1]]
hashMap.put("b",2);  [["a",1],["b",2]]
hashMap.put("a',3);  [["a",4],["b",2]]
h22fl7wq

h22fl7wq1#

你可以用 Collectors.toMap :

Map<String, Integer> hashMap =
    list.stream()
        .collect(Collectors.toMap(p -> p.key,
                                  p -> p.value,
                                  (v1,v2)->v1+v2));

相关问题