public final class WeakIdentityMap<K,V> extends Object
WeakHashMap
and
IdentityHashMap
.
Useful for caches that need to key off of a ==
comparison
instead of a .equals
.
This class is not a general-purpose Map
implementation! It intentionally violates
Map's general contract, which mandates the use of the equals method
when comparing objects. This class is designed for use only in the
rare cases wherein reference-equality semantics are required.
This implementation was forked from Apache CXF
but modified to not implement the Map
interface and
without any set views on it, as those are error-prone and inefficient,
if not implemented carefully. The map only contains Iterator
implementations
on the values and not-GCed keys. Lucene's implementation also supports null
keys, but those are never weak!
Modifier and Type | Method and Description |
---|---|
void |
clear()
Removes all of the mappings from this map.
|
boolean |
containsKey(Object key)
Returns
true if this map contains a mapping for the specified key. |
V |
get(Object key)
Returns the value to which the specified key is mapped.
|
boolean |
isEmpty()
Returns
true if this map contains no key-value mappings. |
Iterator<K> |
keyIterator()
Returns an iterator over all weak keys of this map.
|
static <K,V> WeakIdentityMap<K,V> |
newConcurrentHashMap()
Creates a new
WeakIdentityMap based on a ConcurrentHashMap . |
static <K,V> WeakIdentityMap<K,V> |
newHashMap()
Creates a new
WeakIdentityMap based on a non-synchronized HashMap . |
V |
put(K key,
V value)
Associates the specified value with the specified key in this map.
|
V |
remove(Object key)
Removes the mapping for a key from this weak hash map if it is present.
|
int |
size()
Returns the number of key-value mappings in this map.
|
Iterator<V> |
valueIterator()
Returns an iterator over all values of this map.
|
public static final <K,V> WeakIdentityMap<K,V> newHashMap()
WeakIdentityMap
based on a non-synchronized HashMap
.public static final <K,V> WeakIdentityMap<K,V> newConcurrentHashMap()
WeakIdentityMap
based on a ConcurrentHashMap
.public void clear()
public boolean containsKey(Object key)
true
if this map contains a mapping for the specified key.public V put(K key, V value)
public boolean isEmpty()
true
if this map contains no key-value mappings.public V remove(Object key)
null
if the map contained no mapping for the key.
A return value of null
does not necessarily indicate that
the map contained.public int size()
public Iterator<K> keyIterator()
Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.