小编Ric*_*ler的帖子

如果不存在,则将新值放入Map中,如果不存在则添加它

我有一个java.util.Map<Foo, Double>关键类课程Foo.我们来调用地图的实例map.

我想在该地图中添加{ foo,f}(foo是一个实例Foof一个实例Double).但是如果密钥foo已经存在,我想总结f到该映射中的当前值.

目前我用

Double current = map.get(foo);
f += current == null ? 0.0 : current;
map.put(foo, f);
Run Code Online (Sandbox Code Playgroud)

但是在Java 8中有没有一种时髦的方法,例如使用Map#mergeDouble::sum

遗憾的是我无法弄明白.

谢谢.

java java-8

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

在Map中为术语添加值

我正在尝试将特定值添加到地图中Java,其中键非常复杂,但值是一个简单的Double.

目前我正在使用,其中foos是一个实例java.util.TreeMap<Foo, Double>,并且amount是一个Double代码,如:

for (java.util.Map.Entry<Foo, Double> entry : foos.entrySet()){     
    foos.put(entry.getKey(), entry.getValue() + amount);    
}   
Run Code Online (Sandbox Code Playgroud)

但这看起来很脏,我必须重新插入元素,我担心使迭代器失效.

有没有更好的方法呢?我正在使用最新版本的Java.

java java-8

6
推荐指数
2
解决办法
144
查看次数

标签 统计

java ×2

java-8 ×2