public class WeakIdentityHashMap extends GenericMap implements java.util.Map
WeakIdentityHashMap is a hash map that hashes
objects based on System.identityHashMap, and holds weakly onto the
key. This fails if values make reference to the keys!| Modifier and Type | Class and Description |
|---|---|
(package private) class |
WeakIdentityHashMap.Entry |
(package private) class |
WeakIdentityHashMap.EntryIterator |
GenericMap.KeyIterator, GenericMap.KeyOrValueIterator, GenericMap.ValueIterator| Modifier and Type | Field and Description |
|---|---|
private static float |
DEFAULT_RATIO |
private static java.lang.Object |
NULL_KEY |
private java.lang.ref.ReferenceQueue |
queue |
private int |
range
the current range for table.
|
private float |
ratio |
private WeakIdentityHashMap.Entry[] |
table
the hash index
|
size| Constructor and Description |
|---|
WeakIdentityHashMap()
the default and only constructor
|
WeakIdentityHashMap(int size) |
| Modifier and Type | Method and Description |
|---|---|
void |
clear() |
private void |
clear(int size) |
private boolean |
containsKey(int hash,
java.lang.Object masked_key) |
boolean |
containsKey(java.lang.Object key)
return the element with the given key
|
protected java.util.Iterator |
entryIterator() |
private void |
expunge() |
private java.lang.Object |
get(int hash,
java.lang.Object masked_key) |
java.lang.Object |
get(java.lang.Object key)
return the element with the given key
|
private void |
grow() |
private int |
index(int hash)
translate hash code bucket to index
|
boolean |
isEmpty() |
protected boolean |
keyEquals(java.lang.Object key1,
java.lang.Object key2) |
protected int |
keyHash(java.lang.Object key) |
private java.lang.Object |
maskKey(java.lang.Object key) |
private java.lang.Object |
put(int hash,
java.lang.Object masked_key,
java.lang.Object value) |
java.lang.Object |
put(java.lang.Object key,
java.lang.Object value) |
java.lang.Object |
remove(int hash,
java.lang.Object key) |
java.lang.Object |
remove(java.lang.Object key) |
private void |
removeEntry(WeakIdentityHashMap.Entry ent) |
int |
size() |
private static java.lang.Object |
unmaskKey(java.lang.Object key) |
protected void |
valueRemoved(java.lang.Object value) |
containsValue, entrySet, equals, hashCode, keyIterator, keySet, putAll, valueEquals, valueHash, valueIterator, valuesprivate static final float DEFAULT_RATIO
private static final java.lang.Object NULL_KEY
private final java.lang.ref.ReferenceQueue queue
private WeakIdentityHashMap.Entry[] table
private int range
private float ratio
public WeakIdentityHashMap()
public WeakIdentityHashMap(int size)
private static java.lang.Object unmaskKey(java.lang.Object key)
private java.lang.Object maskKey(java.lang.Object key)
private int index(int hash)
public void clear()
clear in interface java.util.Mapprivate void clear(int size)
private void expunge()
public java.lang.Object get(java.lang.Object key)
get in interface java.util.Mapprivate java.lang.Object get(int hash,
java.lang.Object masked_key)
public boolean containsKey(java.lang.Object key)
containsKey in interface java.util.MapcontainsKey in class GenericMapprivate boolean containsKey(int hash,
java.lang.Object masked_key)
public java.lang.Object put(java.lang.Object key,
java.lang.Object value)
put in interface java.util.Mapprivate java.lang.Object put(int hash,
java.lang.Object masked_key,
java.lang.Object value)
public java.lang.Object remove(java.lang.Object key)
remove in interface java.util.Mappublic java.lang.Object remove(int hash,
java.lang.Object key)
private void removeEntry(WeakIdentityHashMap.Entry ent)
protected void valueRemoved(java.lang.Object value)
private void grow()
protected java.util.Iterator entryIterator()
entryIterator in class GenericMapprotected final int keyHash(java.lang.Object key)
keyHash in class GenericMapprotected final boolean keyEquals(java.lang.Object key1,
java.lang.Object key2)
keyEquals in class GenericMappublic int size()
size in interface java.util.Mapsize in class GenericMappublic boolean isEmpty()
isEmpty in interface java.util.MapisEmpty in class GenericMap