Package com.mycila.xmltool
Class SoftHashMap<K,V>
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- com.mycila.xmltool.SoftHashMap<K,V>
-
- All Implemented Interfaces:
java.util.Map<K,V>
final class SoftHashMap<K,V> extends java.util.AbstractMap<K,V> implements java.util.Map<K,V>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classSoftHashMap.Entry<K,V>private classSoftHashMap.EntryIteratorprivate classSoftHashMap.EntrySetprivate classSoftHashMap.HashIterator<T>private classSoftHashMap.KeyIteratorprivate classSoftHashMap.KeySetprivate static classSoftHashMap.SimpleEntry<K,V>private classSoftHashMap.ValueIteratorprivate classSoftHashMap.Values
-
Field Summary
Fields Modifier and Type Field Description private static intDEFAULT_INITIAL_CAPACITYprivate static floatDEFAULT_LOAD_FACTORprivate java.util.Set<java.util.Map.Entry<K,V>>entrySetprivate java.util.Set<K>keySetprivate floatloadFactorprivate static intMAXIMUM_CAPACITYprivate intmodCountprivate static java.lang.ObjectNULL_KEYprivate java.lang.ref.ReferenceQueue<K>queueprivate intsizeprivate SoftHashMap.Entry<K,V>[]tableprivate intthresholdprivate java.util.Collection<V>values
-
Constructor Summary
Constructors Constructor Description SoftHashMap()SoftHashMap(int initialCapacity)SoftHashMap(int initialCapacity, float loadFactor)SoftHashMap(java.util.Map<? extends K,? extends V> t)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()booleancontainsKey(java.lang.Object key)private booleancontainsNullValue()booleancontainsValue(java.lang.Object value)java.util.Set<java.util.Map.Entry<K,V>>entrySet()private static booleaneq(java.lang.Object x, java.lang.Object y)private voidexpungeStaleEntries()Vget(java.lang.Object key)private SoftHashMap.Entry<K,V>getEntry(java.lang.Object key)private SoftHashMap.Entry<K,V>[]getTable()private static inthash(int h)private static inthash(java.lang.Object key)private static intindexFor(int h, int length)booleanisEmpty()java.util.Set<K>keySet()private static <K> KmaskNull(java.lang.Object key)Vput(K key, V value)voidputAll(java.util.Map<? extends K,? extends V> m)Vremove(java.lang.Object key)private SoftHashMap.Entry<K,V>removeMapping(java.lang.Object o)private voidresize(int newCapacity)intsize()private voidtransfer(SoftHashMap.Entry<K,V>[] src, SoftHashMap.Entry<K,V>[] dest)private static <K> KunmaskNull(java.lang.Object key)java.util.Collection<V>values()
-
-
-
Field Detail
-
DEFAULT_INITIAL_CAPACITY
private static final int DEFAULT_INITIAL_CAPACITY
- See Also:
- Constant Field Values
-
MAXIMUM_CAPACITY
private static final int MAXIMUM_CAPACITY
- See Also:
- Constant Field Values
-
DEFAULT_LOAD_FACTOR
private static final float DEFAULT_LOAD_FACTOR
- See Also:
- Constant Field Values
-
NULL_KEY
private static final java.lang.Object NULL_KEY
-
table
private SoftHashMap.Entry<K,V>[] table
-
size
private int size
-
threshold
private int threshold
-
loadFactor
private final float loadFactor
-
queue
private final java.lang.ref.ReferenceQueue<K> queue
-
modCount
private volatile int modCount
-
keySet
private transient volatile java.util.Set<K> keySet
-
values
private transient volatile java.util.Collection<V> values
-
-
Method Detail
-
size
public int size()
-
isEmpty
public boolean isEmpty()
-
get
public V get(java.lang.Object key)
-
containsKey
public boolean containsKey(java.lang.Object key)
-
remove
public V remove(java.lang.Object key)
-
clear
public void clear()
-
containsValue
public boolean containsValue(java.lang.Object value)
-
keySet
public java.util.Set<K> keySet()
-
values
public java.util.Collection<V> values()
-
expungeStaleEntries
private void expungeStaleEntries()
-
getTable
private SoftHashMap.Entry<K,V>[] getTable()
-
getEntry
private SoftHashMap.Entry<K,V> getEntry(java.lang.Object key)
-
resize
private void resize(int newCapacity)
-
transfer
private void transfer(SoftHashMap.Entry<K,V>[] src, SoftHashMap.Entry<K,V>[] dest)
-
removeMapping
private SoftHashMap.Entry<K,V> removeMapping(java.lang.Object o)
-
containsNullValue
private boolean containsNullValue()
-
maskNull
private static <K> K maskNull(java.lang.Object key)
-
unmaskNull
private static <K> K unmaskNull(java.lang.Object key)
-
eq
private static boolean eq(java.lang.Object x, java.lang.Object y)
-
indexFor
private static int indexFor(int h, int length)
-
hash
private static int hash(java.lang.Object key)
-
hash
private static int hash(int h)
-
-