gpt4 book ai didi

java - 如果不存在,则将新值放入 M​​ap,如果存在,则添加它

转载 作者:搜寻专家 更新时间:2023-10-30 20:59:35 26 4
gpt4 key购买 nike

我有一个 java.util.Map<Foo, Double>对于键类型类 Foo .让我们调用 map 的实例map .

我想添加 { foo , f } ( fooFoo 的实例,而 fDouble )到该映射。但是如果键 foo已经存在我想总结f到该 map 中的当前值。

目前我在用

Double current = map.get(foo);
f += current == null ? 0.0 : current;
map.put(foo, f);

但是在 Java 8 中是否有一种时髦的方法可以做到这一点,例如使用 Map#merge , 和 Double::sum

很遗憾,我想不通。

谢谢。

最佳答案

这就是 map 上的合并功能的用途。

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)
}

关于java - 如果不存在,则将新值放入 M​​ap,如果存在,则添加它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42020870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com