如果不存在,则将新值放入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

