class MapIteratorCache<K,V>
extends java.lang.Object
unmodifiableKeySet()
. By design, the cache is cleared when this structure is mutated. If
this structure is never mutated, it provides a thread-safe view of the backing map.
The MapIteratorCache
assumes ownership of the backing map, and cannot guarantee
correctness in the face of external mutations to the backing map. As such, it is strongly
recommended that the caller does not persist a reference to the backing map (unless the backing
map is immutable).
This class is tailored toward use cases in common.graph. It is *NOT* a general purpose map.
Modifier and Type | Field and Description |
---|---|
private java.util.Map<K,V> |
backingMap |
private java.util.Map.Entry<K,V> |
entrySetCache |
Constructor and Description |
---|
MapIteratorCache(java.util.Map<K,V> backingMap) |
Modifier and Type | Method and Description |
---|---|
void |
clear() |
protected void |
clearCache() |
boolean |
containsKey(java.lang.Object key) |
V |
get(java.lang.Object key) |
protected V |
getIfCached(java.lang.Object key) |
V |
getWithoutCaching(java.lang.Object key) |
V |
put(K key,
V value) |
V |
remove(java.lang.Object key) |
java.util.Set<K> |
unmodifiableKeySet() |
public V remove(java.lang.Object key)
public void clear()
public V get(java.lang.Object key)
public final V getWithoutCaching(java.lang.Object key)
public final boolean containsKey(java.lang.Object key)
public final java.util.Set<K> unmodifiableKeySet()
protected V getIfCached(java.lang.Object key)
protected void clearCache()