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