【发布时间】:2021-09-07 04:57:54
【问题描述】:
我有一些函数可以在ConcurrentHashMap 中增加或设置一个值,这些函数工作正常。我还有一个将值设置为0 的函数。我希望该函数返回以前的值。例如,此函数将返回0,但我想知道设置为0之前的值
public static long zeroValue(String mapKey) {
return concurrentMap.compute(mapKey, (key, val) -> 0L);
}
如果我这样做,我会得到一个错误,即 ret 必须是最终的。但是,让它最终化并不允许我在其中添加价值,
public static long zeroValue(String mapKey) {
long ret;
concurrentMap.compute(mapKey, (key, val) -> { ret = val; return 0L; });
return ret;
}
【问题讨论】:
标签: java java-8 concurrenthashmap