K
- the key typeV
- the value typefinal class UnlockedReadHashMap<K,V>
extends java.util.AbstractMap<K,V>
implements java.util.concurrent.ConcurrentMap<K,V>
Modifier and Type | Class and Description |
---|---|
private class |
UnlockedReadHashMap.EntryIterator |
private class |
UnlockedReadHashMap.EntrySet |
private static class |
UnlockedReadHashMap.Item<K,V> |
Modifier and Type | Field and Description |
---|---|
private static int |
DEFAULT_INITIAL_CAPACITY |
private static float |
DEFAULT_LOAD_FACTOR |
private java.util.Set<java.util.Map.Entry<K,V>> |
entrySet |
private float |
loadFactor |
private static int |
MAXIMUM_CAPACITY |
private int |
size |
private java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> |
table |
private int |
threshold |
private java.lang.Object |
writeLock |
Constructor and Description |
---|
UnlockedReadHashMap() |
UnlockedReadHashMap(float loadFactor) |
UnlockedReadHashMap(int initialCapacity) |
UnlockedReadHashMap(int initialCapacity,
float loadFactor) |
Modifier and Type | Method and Description |
---|---|
void |
clear() |
boolean |
containsKey(java.lang.Object key) |
private static <K,V> UnlockedReadHashMap.Item<K,V> |
doGet(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table,
java.lang.Object key) |
private static <K,V> UnlockedReadHashMap.Item<K,V> |
doGet(UnlockedReadHashMap.Item<K,V>[] row,
java.lang.Object key) |
private static <K,V> UnlockedReadHashMap.Item<K,V>[] |
doGetRow(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table,
int hc) |
private static <K,V> UnlockedReadHashMap.Item<K,V>[] |
doGetRow(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table,
java.lang.Object key) |
private V |
doPut(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table,
K key,
V value,
boolean ifAbsent) |
java.util.Set<java.util.Map.Entry<K,V>> |
entrySet() |
V |
get(java.lang.Object key) |
private static <K,V> int |
getIndex(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table,
java.lang.Object key) |
V |
put(K key,
V value) |
V |
putIfAbsent(K key,
V value) |
V |
remove(java.lang.Object key) |
boolean |
remove(java.lang.Object key,
java.lang.Object value) |
private static <K,V> UnlockedReadHashMap.Item<K,V>[] |
remove(UnlockedReadHashMap.Item<K,V>[] row,
int idx) |
V |
replace(K key,
V value) |
boolean |
replace(K key,
V oldValue,
V newValue) |
private void |
resize() |
int |
size() |
clone, containsValue, equals, hashCode, isEmpty, keySet, putAll, toString, values
finalize, getClass, notify, notifyAll, wait, wait, wait
private static final int DEFAULT_INITIAL_CAPACITY
private static final int MAXIMUM_CAPACITY
private static final float DEFAULT_LOAD_FACTOR
private final java.lang.Object writeLock
private final float loadFactor
private volatile int size
private volatile java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table
private int threshold
UnlockedReadHashMap(int initialCapacity, float loadFactor)
UnlockedReadHashMap(float loadFactor)
UnlockedReadHashMap(int initialCapacity)
UnlockedReadHashMap()
private void resize()
private static <K,V> UnlockedReadHashMap.Item<K,V> doGet(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table, java.lang.Object key)
private static <K,V> UnlockedReadHashMap.Item<K,V>[] doGetRow(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table, java.lang.Object key)
private static <K,V> int getIndex(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table, java.lang.Object key)
private static <K,V> UnlockedReadHashMap.Item<K,V>[] doGetRow(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table, int hc)
private static <K,V> UnlockedReadHashMap.Item<K,V> doGet(UnlockedReadHashMap.Item<K,V>[] row, java.lang.Object key)
private V doPut(java.util.concurrent.atomic.AtomicReferenceArray<UnlockedReadHashMap.Item<K,V>[]> table, K key, V value, boolean ifAbsent)
private static <K,V> UnlockedReadHashMap.Item<K,V>[] remove(UnlockedReadHashMap.Item<K,V>[] row, int idx)
public int size()
public boolean containsKey(java.lang.Object key)
public V get(java.lang.Object key)
public V remove(java.lang.Object key)
public void clear()
public boolean remove(java.lang.Object key, java.lang.Object value)