|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.AbstractMap<K,V>
gnu.kawa.util.AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
gnu.kawa.util.AbstractWeakHashTable<K,V>
public abstract class AbstractWeakHashTable<K,V>
A hash table with weakly referenced keys and values. Unlike java.util.WeakHashMap, this is useful when a value object contain a strong reference to the corresponding keys.
Nested Class Summary | |
---|---|
static class |
AbstractWeakHashTable.WEntry<K,V>
|
Nested classes/interfaces inherited from class java.util.AbstractMap |
---|
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V> |
Nested classes/interfaces inherited from interface java.util.Map |
---|
java.util.Map.Entry<K,V> |
Field Summary |
---|
Fields inherited from class gnu.kawa.util.AbstractHashTable |
---|
DEFAULT_INITIAL_SIZE, mask, num_bindings, table |
Constructor Summary | |
---|---|
AbstractWeakHashTable()
|
|
AbstractWeakHashTable(int capacity)
|
Method Summary | |
---|---|
protected AbstractWeakHashTable.WEntry<K,V>[] |
allocEntries(int n)
Allocate Entry[n]. |
protected void |
cleanup()
|
V |
get(java.lang.Object key,
V defaultValue)
Find value for given key. |
protected int |
getEntryHashCode(AbstractWeakHashTable.WEntry<K,V> entry)
Extract hash-code from Entry. |
protected AbstractWeakHashTable.WEntry<K,V> |
getEntryNext(AbstractWeakHashTable.WEntry<K,V> entry)
Extract next Entry in same hash-bucket. |
protected abstract K |
getKeyFromValue(V value)
|
protected V |
getValueIfMatching(AbstractWeakHashTable.WEntry<K,V> node,
java.lang.Object key)
|
int |
hash(java.lang.Object key)
Calculate hash code of a key. |
protected AbstractWeakHashTable.WEntry<K,V> |
makeEntry(K key,
int hash,
V value)
Allocate a new node in the hash table. |
V |
put(K key,
V value)
|
protected void |
setEntryNext(AbstractWeakHashTable.WEntry<K,V> entry,
AbstractWeakHashTable.WEntry<K,V> next)
Set next Entry in same hash-bucket. |
protected boolean |
valuesEqual(V oldValue,
V newValue)
|
Methods inherited from class gnu.kawa.util.AbstractHashTable |
---|
clear, entrySet, get, getNode, hashToIndex, matches, matches, put, rehash, remove, size |
Methods inherited from class java.util.AbstractMap |
---|
clone, containsKey, containsValue, equals, hashCode, isEmpty, keySet, putAll, toString, values |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public AbstractWeakHashTable()
public AbstractWeakHashTable(int capacity)
Method Detail |
---|
protected abstract K getKeyFromValue(V value)
protected int getEntryHashCode(AbstractWeakHashTable.WEntry<K,V> entry)
AbstractHashTable
getEntryHashCode
in class AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
protected AbstractWeakHashTable.WEntry<K,V> getEntryNext(AbstractWeakHashTable.WEntry<K,V> entry)
AbstractHashTable
getEntryNext
in class AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
protected void setEntryNext(AbstractWeakHashTable.WEntry<K,V> entry, AbstractWeakHashTable.WEntry<K,V> next)
AbstractHashTable
setEntryNext
in class AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
protected AbstractWeakHashTable.WEntry<K,V>[] allocEntries(int n)
AbstractHashTable
allocEntries
in class AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
protected V getValueIfMatching(AbstractWeakHashTable.WEntry<K,V> node, java.lang.Object key)
public V get(java.lang.Object key, V defaultValue)
AbstractHashTable
get
in class AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
public int hash(java.lang.Object key)
AbstractHashTable
hash
in class AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
protected boolean valuesEqual(V oldValue, V newValue)
protected AbstractWeakHashTable.WEntry<K,V> makeEntry(K key, int hash, V value)
AbstractHashTable
makeEntry
in class AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
public V put(K key, V value)
put
in interface java.util.Map<K,V>
put
in class AbstractHashTable<AbstractWeakHashTable.WEntry<K,V>,K,V>
protected void cleanup()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |