ConcurrentHashMap put vs putIfAbsent
JavaDocs sagt, dass,putIfAbsent
ist äquivalent zu
<code> if (!map.containsKey(key)) return map.put(key, value); else return map.get(key); </code>
Wenn der Schlüssel in der Karte vorhanden ist, wird sein Wert nicht aktualisiert. Ist das richtig?
Was ist, wenn ich einen Schlüsselwert basierend auf bestimmten Kriterien aktualisieren möchte? Sagen Sie Ablaufzeit usw.
Wäre dies ein besseres Werkzeug zum Hinzufügen und Aktualisieren des Caches?
<code>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); } </code>