|
||||||||||
| 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 | |||||||||