K - the key typeV - the value typefinal class UnlockedHashMap<K,V>
extends java.util.AbstractMap<K,V>
implements java.util.concurrent.ConcurrentMap<K,V>
| Modifier and Type | Class and Description |
|---|---|
(package private) class |
UnlockedHashMap.BranchIterator |
(package private) class |
UnlockedHashMap.EntryIterator |
(package private) class |
UnlockedHashMap.EntrySet |
(package private) static class |
UnlockedHashMap.Item<K,V> |
(package private) class |
UnlockedHashMap.KeyIterator |
(package private) class |
UnlockedHashMap.KeySet |
(package private) class |
UnlockedHashMap.RowIterator |
(package private) static class |
UnlockedHashMap.Table<K,V> |
(package private) class |
UnlockedHashMap.TableIterator |
(package private) class |
UnlockedHashMap.ValueIterator |
(package private) class |
UnlockedHashMap.Values |
| 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 int |
initialCapacity |
private java.util.Set<K> |
keySet |
private float |
loadFactor |
private static int |
MAXIMUM_CAPACITY |
private static java.lang.Object |
NONEXISTENT
A non-existent table entry (as opposed to a
null value). |
private static UnlockedHashMap.Item<?,?>[] |
RESIZED
A row which has been resized into the new view.
|
private static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<UnlockedHashMap.Table> |
sizeUpdater |
private UnlockedHashMap.Table<K,V> |
table |
private static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<UnlockedHashMap,UnlockedHashMap.Table> |
tableUpdater |
private java.util.Collection<V> |
values |
private static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<UnlockedHashMap.Item,java.lang.Object> |
valueUpdater |
| Constructor and Description |
|---|
UnlockedHashMap()
Construct a new instance.
|
UnlockedHashMap(float loadFactor)
Construct a new instance.
|
UnlockedHashMap(int initialCapacity)
Construct a new instance.
|
UnlockedHashMap(int initialCapacity,
float loadFactor)
Construct a new instance.
|
| Modifier and Type | Method and Description |
|---|---|
private UnlockedHashMap.Item<K,V>[] |
addItem(UnlockedHashMap.Item<K,V>[] row,
UnlockedHashMap.Item<K,V> newItem) |
void |
clear() |
boolean |
containsKey(java.lang.Object key) |
private static <K,V> UnlockedHashMap.Item<K,V>[] |
createRow(int length) |
private static <K,V> UnlockedHashMap.Item<K,V>[] |
createRow(UnlockedHashMap.Item<K,V> newItem) |
private UnlockedHashMap.TableIterator |
createRowIterator(UnlockedHashMap.Table<K,V> table,
int rowIdx) |
private V |
doGet(UnlockedHashMap.Table<K,V> table,
K key) |
private V |
doPut(K key,
V value,
boolean ifAbsent,
UnlockedHashMap.Table<K,V> table) |
private V |
doRemove(K key,
UnlockedHashMap.Table<K,V> table) |
private boolean |
doRemove(K key,
V value,
UnlockedHashMap.Table<K,V> table) |
private boolean |
doRemove(UnlockedHashMap.Item<K,V> item,
UnlockedHashMap.Table<K,V> table) |
private V |
doReplace(K key,
V value,
UnlockedHashMap.Table<K,V> table) |
private boolean |
doReplace(K key,
V oldValue,
V newValue,
UnlockedHashMap.Table<K,V> table) |
java.util.Set<java.util.Map.Entry<K,V>> |
entrySet() |
V |
get(java.lang.Object key) |
private static int |
hashCode(java.lang.Object key) |
java.util.Set<K> |
keySet() |
private static <V> V |
nonexistent() |
V |
put(K key,
V value) |
V |
putIfAbsent(K key,
V value) |
V |
remove(java.lang.Object objectKey) |
boolean |
remove(java.lang.Object objectKey,
java.lang.Object objectValue) |
private static <K,V> UnlockedHashMap.Item<K,V>[] |
remove(UnlockedHashMap.Item<K,V>[] row,
int idx) |
V |
replace(K key,
V value) |
boolean |
replace(K key,
V oldValue,
V newValue) |
private void |
resize(UnlockedHashMap.Table<K,V> origTable) |
private static <K,V> UnlockedHashMap.Item<K,V>[] |
resized() |
int |
size() |
java.util.Collection<V> |
values() |
clone, containsValue, equals, hashCode, isEmpty, putAll, toStringfinalize, getClass, notify, notifyAll, wait, wait, waitprivate static final int DEFAULT_INITIAL_CAPACITY
private static final int MAXIMUM_CAPACITY
private static final float DEFAULT_LOAD_FACTOR
private static final UnlockedHashMap.Item<?,?>[] RESIZED
private static final java.lang.Object NONEXISTENT
null value).private volatile UnlockedHashMap.Table<K,V> table
private final java.util.Set<K> keySet
private final java.util.Collection<V> values
private final float loadFactor
private final int initialCapacity
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<UnlockedHashMap.Table> sizeUpdater
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<UnlockedHashMap,UnlockedHashMap.Table> tableUpdater
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<UnlockedHashMap.Item,java.lang.Object> valueUpdater
public UnlockedHashMap(int initialCapacity,
float loadFactor)
initialCapacity - the initial capacityloadFactor - the load factorpublic UnlockedHashMap(float loadFactor)
loadFactor - the load factorpublic UnlockedHashMap(int initialCapacity)
initialCapacity - the initial capacitypublic UnlockedHashMap()
private UnlockedHashMap.Item<K,V>[] addItem(UnlockedHashMap.Item<K,V>[] row, UnlockedHashMap.Item<K,V> newItem)
private static <K,V> UnlockedHashMap.Item<K,V>[] createRow(UnlockedHashMap.Item<K,V> newItem)
private static <K,V> UnlockedHashMap.Item<K,V>[] createRow(int length)
private static int hashCode(java.lang.Object key)
private void resize(UnlockedHashMap.Table<K,V> origTable)
private static <K,V> UnlockedHashMap.Item<K,V>[] remove(UnlockedHashMap.Item<K,V>[] row, int idx)
public boolean remove(java.lang.Object objectKey,
java.lang.Object objectValue)
private boolean doRemove(UnlockedHashMap.Item<K,V> item, UnlockedHashMap.Table<K,V> table)
private boolean doRemove(K key, V value, UnlockedHashMap.Table<K,V> table)
public V remove(java.lang.Object objectKey)
private V doRemove(K key, UnlockedHashMap.Table<K,V> table)
private static <V> V nonexistent()
private static <K,V> UnlockedHashMap.Item<K,V>[] resized()
private boolean doReplace(K key, V oldValue, V newValue, UnlockedHashMap.Table<K,V> table)
public int size()
private V doGet(UnlockedHashMap.Table<K,V> table, K key)
public boolean containsKey(java.lang.Object key)
public V get(java.lang.Object key)
public void clear()
public java.util.Collection<V> values()
public java.util.Set<K> keySet()
private UnlockedHashMap.TableIterator createRowIterator(UnlockedHashMap.Table<K,V> table, int rowIdx)