使用java流更新映射值
我需要帮助,通过使用java流来执行这个put-to-map操作,使这个为map增值的java代码变得高效使用java流更新映射值,java,lambda,java-8,java-stream,Java,Lambda,Java 8,Java Stream,我需要帮助,通过使用java流来执行这个put-to-map操作,使这个为map增值的java代码变得高效 class Pair{ String key; int value; } void addtoMap(List<Pair> list){ Map<String, Integer> hashMap= new HashMap(); list.forEach(pair -> { if(hashMap.cont
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]]
类对{
字符串键;
int值;
}
void addtoMap(列表){
Map hashMap=新hashMap();
列表。forEach(对->{
if(hashMap.containsKey(pair.key))
{
int p=hashMap.get(pair.key);
hashMap.put(pair.key,p+pair.value)
}
其他的
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]]
您可以使用收集器。toMap
:
Map<String, Integer> hashMap =
list.stream()
.collect(Collectors.toMap(p -> p.key,
p -> p.value,
(v1,v2)->v1+v2));
Map hashMap=
list.stream()
.collect(收集器).toMap(p->p.key,
p->p.value,
(v1,v2)->v1+v2);
您可以使用收集器。toMap
:
Map<String, Integer> hashMap =
list.stream()
.collect(Collectors.toMap(p -> p.key,
p -> p.value,
(v1,v2)->v1+v2));
Map hashMap=
list.stream()
.collect(收集器).toMap(p->p.key,
p->p.value,
(v1,v2)->v1+v2);
Nice解决方案。lambda(v1,v2)->v1+v2也可以替换为Integer::sum
。Nice解决方案。lambda(v1,v2)->v1+v2
也可以替换为Integer::sum
。