Package org.sunflow.util
Class FastHashMap<K,V>
- java.lang.Object
-
- org.sunflow.util.FastHashMap<K,V>
-
- Type Parameters:
K-V-
- All Implemented Interfaces:
java.lang.Iterable<FastHashMap.Entry<K,V>>
public class FastHashMap<K,V> extends java.lang.Object implements java.lang.Iterable<FastHashMap.Entry<K,V>>
Fast hash map implementation which uses array storage along with quadratic probing to resolve collisions. The capacity is doubled when the load goes beyond 50% and is halved when the load drops below 20%.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFastHashMap.Entry<K,V>private classFastHashMap.EntryIterator
-
Constructor Summary
Constructors Constructor Description FastHashMap()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private FastHashMap.Entry<K,V>[]alloc(int size)Wrap the entry array allocation because it requires silencing some generics warnings.voidclear()booleancontainsKey(K k)Vget(K k)java.util.Iterator<FastHashMap.Entry<K,V>>iterator()Vput(K k, V v)voidremove(K k)private voidresize(int capacity)Resize internal storage to the specified capacity.
-
-
-
Field Detail
-
MIN_SIZE
private static final int MIN_SIZE
- See Also:
- Constant Field Values
-
entries
private FastHashMap.Entry<K,V>[] entries
-
size
private int size
-
-
Method Detail
-
clear
public void clear()
-
containsKey
public boolean containsKey(K k)
-
remove
public void remove(K k)
-
resize
private void resize(int capacity)
Resize internal storage to the specified capacity. The capacity must be a power of two.- Parameters:
capacity- new capacity for the internal array
-
alloc
private FastHashMap.Entry<K,V>[] alloc(int size)
Wrap the entry array allocation because it requires silencing some generics warnings.- Parameters:
size- number of elements to allocate- Returns:
-
iterator
public java.util.Iterator<FastHashMap.Entry<K,V>> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<K>
-
-