我必须实现逻辑,仅当键当前未映射到任何值时,我才需要为键自动设置对象。我可以自己实现它,但如果它已经在某个地方完成,我不想重新发明轮子。
问问题
121 次
2 回答
5
ConcurrentHashMap
有putIfAbsent
方法,可能是你需要的。正如 dogbane 指出的那样,它实际上是在 base interface 中定义的ConcurrentMap
,ConcurrentSkipListMap
它也是如此。
于 2012-05-08T14:45:59.497 回答
4
使用ConcurrentHashMap.putifAbsent
如果指定的键尚未与值关联,则将其与给定值关联。这相当于
if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key);
除了动作是原子执行的。
于 2012-05-08T14:45:59.863 回答