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