ConcurrentHashMap put vs putIfAbsent
2022-09-02 10:40:12
Java Docs说,相当于putIfAbsent
if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key);
因此,如果映射中存在该键,则不会更新其值。这是正确的吗?
如果我想根据某些条件更新密钥值怎么办?比如说到期时间等。
这是否是添加和更新缓存的更好含义?
public void AddToCache(T key, V value)
{
V local = _cache.putifabsent(key, value);
if(local.equals(value) && local.IsExpired() == false){
return;
}
// this is for updating the cache with a new value
_cache.put(key, value);
}