如果不存在,则将新值放入Map中;如果不存在,则添加新值
我有一个java.util.Map<Foo, Double>
钥匙型课Foo
。让我们称为map的实例map
。
我要添加{
foo
,f
}(foo
是的一个实例Foo
,并且f
一Double
)该地图。但是,如果键foo
已经存在,我想求和f
该映射图中的当前值。
目前我使用
Double current = map.get(foo);f += current == null ? 0.0 : current;
map.put(foo, f);
但是在Java 8中是否有一种时髦的方式来做到这一点,例如使用Map#merge
和Double::sum
?
遗憾的是我无法弄清楚。
谢谢。
回答:
这就是地图上的合并功能的作用。
map.merge(foo, f, (f1, f2) -> f1 + f2)
这可以进一步减少到
map.merge(foo, f, Double::sum)
它基本上等于
if(map.contains(foo)){ double x = map.get(foo);
map.put(foo, x + f)
} else {
map.put(foo, f)
}
以上是 如果不存在,则将新值放入Map中;如果不存在,则添加新值 的全部内容, 来源链接: utcz.com/qa/432395.html