Class ConcurrentOpenHashMap<K,V>
- Type Parameters:
V
-
Provides similar methods as a ConcurrentMap<K,V>
but since it's an open hash map with linear probing,
no node allocations are required to store the values.
WARN: method forEach do not guarantee thread safety, nor do the keys and values method.
The forEach method is specifically designed for single-threaded usage. When iterating over a map
with concurrent writes, it becomes possible for new values to be either observed or not observed.
There is no guarantee that if we write value1 and value2, and are able to see value2, then we will also see value1.
In some cases, it is even possible to encounter two mappings with the same key,
leading the keys method to return a List containing two identical keys.
It is crucial to understand that the results obtained from aggregate status methods such as keys and values
are typically reliable only when the map is not undergoing concurrent updates from other threads.
When concurrent updates are involved, the results of these methods reflect transient states
that may be suitable for monitoring or estimation purposes, but not for program control.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Builder of ConcurrentOpenHashMap. -
Constructor Summary
ConstructorDescriptionDeprecated.ConcurrentOpenHashMap
(int expectedItems) Deprecated.ConcurrentOpenHashMap
(int expectedItems, int concurrencyLevel) Deprecated.ConcurrentOpenHashMap
(int expectedItems, int concurrencyLevel, float mapFillFactor, float mapIdleFactor, boolean autoShrink, float expandFactor, float shrinkFactor) -
Method Summary
Modifier and TypeMethodDescriptionlong
capacity()
void
clear()
computeIfAbsent
(K key, Function<K, V> provider) boolean
containsKey
(K key) static <K,
V> ConcurrentOpenHashMap<K, V> emptyMap()
void
forEach
(BiConsumer<? super K, ? super V> processor) Iterate over all the entries in the map and apply the processor function to each of them.boolean
isEmpty()
keys()
static <K,
V> ConcurrentOpenHashMap.Builder<K, V> putIfAbsent
(K key, V value) boolean
void
removeNullValue
(K key) long
size()
values()
-
Constructor Details
-
ConcurrentOpenHashMap
Deprecated. -
ConcurrentOpenHashMap
Deprecated. -
ConcurrentOpenHashMap
Deprecated. -
ConcurrentOpenHashMap
public ConcurrentOpenHashMap(int expectedItems, int concurrencyLevel, float mapFillFactor, float mapIdleFactor, boolean autoShrink, float expandFactor, float shrinkFactor)
-
-
Method Details
-
newBuilder
-
emptyMap
-
size
public long size() -
capacity
public long capacity() -
isEmpty
public boolean isEmpty() -
get
-
containsKey
-
put
-
putIfAbsent
-
computeIfAbsent
-
remove
-
remove
-
removeNullValue
-
clear
public void clear() -
forEach
Iterate over all the entries in the map and apply the processor function to each of them.Warning: Do Not Guarantee Thread-Safety.
- Parameters:
processor
- the function to apply to each entry
-
keys
- Returns:
- a new list of all keys (makes a copy)
-
values
-