java.util.Hashtable
, and
includes versions of methods corresponding to each method of
Hashtable
. However, even though all operations are
thread-safe, retrieval operations do not entail locking,
and there is not any support for locking the entire table
in a way that prevents all access. This class is fully
interoperable with Hashtable
in programs that rely on its
thread safety but not on its synchronization details.
Retrieval operations (including get
) generally do not
block, so may overlap with update operations (including put
and remove
). Retrievals reflect the results of the most
recently completed update operations holding upon their
onset. (More formally, an update operation for a given key bears a
happens-before relation with any (non-null) retrieval for
that key reporting the updated value.) For aggregate operations
such as putAll
and clear
, concurrent retrievals may
reflect insertion or removal of only some entries. Similarly,
Iterators, Spliterators and Enumerations return elements reflecting the
state of the hash table at some point at or since the creation of the
iterator/enumeration. They do not throw ConcurrentModificationException
.
However, iterators are designed to be used by only one thread at a time.
Bear in mind that the results of aggregate status methods including
size
, isEmpty
, and containsValue
are typically
useful only when a map is not undergoing concurrent updates in other threads.
Otherwise the results of these methods reflect transient states
that may be adequate for monitoring or estimation purposes, but not
for program control.
The table is dynamically expanded when there are too many
collisions (i.e., keys that have distinct hash codes but fall into
the same slot modulo the table size), with the expected average
effect of maintaining roughly two bins per mapping (corresponding
to a 0.75 load factor threshold for resizing). There may be much
variance around this average as mappings are added and removed, but
overall, this maintains a commonly accepted time/space tradeoff for
hash tables. However, resizing this or any other kind of hash
table may be a relatively slow operation. When possible, it is a
good idea to provide a size estimate as an optional initialCapacity
constructor argument. An additional optional
loadFactor
constructor argument provides a further means of
customizing initial table capacity by specifying the table density
to be used in calculating the amount of space to allocate for the
given number of elements. Also, for compatibility with previous
versions of this class, constructors may optionally specify an
expected concurrencyLevel
as an additional hint for
internal sizing. Note that using many keys with exactly the same
hashCode()
is a sure way to slow down performance of any
hash table. To ameliorate impact, when keys are Comparable
,
this class may use comparison order among keys to help break ties.
A Set
projection of a ConcurrentHashMap may be created
(using newKeySet()
or newKeySet(int)
), or viewed
(using keySet(Object)
when only keys are of interest, and the
mapped values are (perhaps transiently) not used or all take the
same mapping value.
A ConcurrentHashMap can be used as a scalable frequency map (a
form of histogram or multiset) by using java.
values and initializing via
computeIfAbsent
. For example, to add a count
to a ConcurrentHashMap<String,LongAdder> freqs
, you can use
freqs.computeIfAbsent(key, k -> new LongAdder()).increment();
This class and its views and iterators implement all of the
optional methods of the Map
and Iterator
interfaces.
Like Hashtable
but unlike HashMap
, this class
does not allow null
to be used as a key or value.
ConcurrentHashMaps support a set of sequential and parallel bulk
operations that, unlike most Stream
methods, are designed
to be safely, and often sensibly, applied even with maps that are
being concurrently updated by other threads; for example, when
computing a snapshot summary of the values in a shared registry.
There are three kinds of operation, each with four forms, accepting
functions with keys, values, entries, and (key, value) pairs as
arguments and/or return values. Because the elements of a
ConcurrentHashMap are not ordered in any particular way, and may be
processed in different orders in different parallel executions, the
correctness of supplied functions should not depend on any
ordering, or on any other objects or values that may transiently
change while computation is in progress; and except for forEach
actions, should ideally be side-effect-free. Bulk operations on
Map.
objects do not support method setValue
.
These bulk operations accept a parallelismThreshold
argument. Methods proceed sequentially if the current map size is
estimated to be less than the given threshold. Using a value of
Long.MAX_VALUE
suppresses all parallelism. Using a value
of 1
results in maximal parallelism by partitioning into
enough subtasks to fully utilize the ForkJoinPool#commonPool()
that is used for all parallel
computations. Normally, you would initially choose one of these
extreme values, and then measure performance of using in-between
values that trade off overhead versus throughput.
The concurrency properties of bulk operations follow
from those of ConcurrentHashMap: Any non-null result returned
from get(key)
and related access methods bears a
happens-before relation with the associated insertion or
update. The result of any bulk operation reflects the
composition of these per-element relations (but is not
necessarily atomic with respect to the map as a whole unless it
is somehow known to be quiescent). Conversely, because keys
and values in the map are never null, null serves as a reliable
atomic indicator of the current lack of any result. To
maintain this property, null serves as an implicit basis for
all non-scalar reduction operations. For the double, long, and
int versions, the basis should be one that, when combined with
any other value, returns that other value (more formally, it
should be the identity element for the reduction). Most common
reductions have these properties; for example, computing a sum
with basis 0 or a minimum with basis MAX_VALUE.
Search and transformation functions provided as arguments should similarly return null to indicate the lack of any result (in which case it is not used). In the case of mapped reductions, this also enables transformations to serve as filters, returning null (or, in the case of primitive specializations, the identity basis) if the element should not be combined. You can create compound transformations and filterings by composing them yourself under this "null means there is nothing there now" rule before using them in search or reduce operations.
Methods accepting and/or returning Entry arguments maintain
key-value associations. They may be useful for example when
finding the key for the greatest value. Note that "plain" Entry
arguments can be supplied using new
AbstractMap.SimpleEntry(k,v)
.
Bulk operations may complete abruptly, throwing an exception encountered in the application of a supplied function. Bear in mind when handling such exceptions that other concurrently executing functions could also have thrown exceptions, or would have done so if the first exception had not occurred.
Speedups for parallel compared to sequential forms are common but not guaranteed. Parallel operations involving brief functions on small maps may execute more slowly than sequential forms if the underlying work to parallelize the computation is more expensive than the computation itself. Similarly, parallelization may not lead to much actual parallelism if all processors are busy performing unrelated tasks.
All arguments to all task methods must be non-null.
This class is a member of the Java Collections Framework.
Modifier and Type | Class and Description |
---|---|
pack-priv static class | |
pack-priv abstract static class | |
pack-priv abstract static class | |
pack-priv static class | ConcurrentHashMap.
A padded cell for distributing counts. |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
public static class | ConcurrentHashMap.
the type of keys K, the type of values in the backing map V>A view of a ConcurrentHashMap as a |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | ConcurrentHashMap.
Stripped-down version of helper class used in previous version, declared for the sake of serialization compatibility. |
pack-priv static class | ConcurrentHashMap.
Records the table, its length, and current traversal index for a traverser that must process a region of a forwarded table before proceeding with current table. |
pack-priv static class | ConcurrentHashMap.
Encapsulates traversal for methods such as containsValue; also serves as a base class for other iterators and spliterators. |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | |
pack-priv static class | ConcurrentHashMap.
A view of a ConcurrentHashMap as a |
Modifier and Type | Field and Description |
---|---|
private static final int | |
private static final int | |
private transient volatile long | baseCount
Base counter value, used mainly when there is no contention, but also as a fallback during table initialization races. |
private static final long | |
private transient volatile int | cellsBusy
Spinlock (locked via CAS) used when resizing and/or creating CounterCells. |
private static final long | |
private static final long | |
private transient volatile ConcurrentHashMap. | counterCells
Table of counter cells. |
private static final int | DEFAULT_CAPACITY
The default initial table capacity. |
private static final int | DEFAULT_CONCURRENCY_LEVEL
The default concurrency level for this table. |
private transient ConcurrentHashMap. | |
pack-priv static final int | |
private transient ConcurrentHashMap. | |
private static final float | LOAD_FACTOR
The load factor for this table. |
pack-priv static final int | MAX_ARRAY_SIZE
The largest possible (non-power of two) array size. |
private static final int | MAX_RESIZERS
The maximum number of threads that can help resize. |
private static final int | MAXIMUM_CAPACITY
The largest possible table capacity. |
private static final int | MIN_TRANSFER_STRIDE
Minimum number of rebinnings per transfer step. |
pack-priv static final int | MIN_TREEIFY_CAPACITY
The smallest table capacity for which bins may be treeified. |
pack-priv static final int | |
pack-priv static final int | NCPU
Number of CPUS, to place bounds on some sizings |
private transient volatile ConcurrentHashMap. | nextTable
The next table to use; non-null only while resizing. |
pack-priv static final int | |
private static final int | RESIZE_STAMP_BITS
The number of bits used for generation stamp in sizeCtl. |
private static final int | RESIZE_STAMP_SHIFT
The bit shift for recording size stamp in sizeCtl. |
private static final ObjectStreamField[] | serialPersistentFields
Serialized pseudo-fields, provided only for jdk7 compatibility. |
private static final long | |
private transient volatile int | sizeCtl
Table initialization and resizing control. |
private static final long | |
pack-priv transient volatile ConcurrentHashMap. | table
The array of bins. |
private transient volatile int | transferIndex
The next table index (plus one) to split while resizing. |
private static final long | |
pack-priv static final int | |
pack-priv static final int | TREEIFY_THRESHOLD
The bin count threshold for using a tree rather than list for a bin. |
private static final Unsafe | |
pack-priv static final int | UNTREEIFY_THRESHOLD
The bin count threshold for untreeifying a (split) bin during a resize operation. |
private transient ConcurrentHashMap. |
Access | Constructor and Description |
---|---|
public | |
public | ConcurrentHashMap(int
The implementation performs internal
sizing to accommodate this many elements. initialCapacity)Creates a new, empty map with an initial table size accommodating the specified number of elements without the need to dynamically resize. |
public | ConcurrentHashMap(Map<? extends K, ? extends V>
the map m)Creates a new map with the same mappings as the given map. |
public | ConcurrentHashMap(int
the initial capacity. The implementation
performs internal sizing to accommodate this many elements,
given the specified load factor. initialCapacity, float the load factor (table density) for
establishing the initial table size loadFactor)Creates a new, empty map with an initial table size based on
the given number of elements ( |
public | ConcurrentHashMap(int
the initial capacity. The implementation
performs internal sizing to accommodate this many elements,
given the specified load factor. initialCapacity, float the load factor (table density) for
establishing the initial table size loadFactor, int the estimated number of concurrently
updating threads. The implementation may use this value as
a sizing hint. concurrencyLevel)Creates a new, empty map with an initial table size based on
the given number of elements ( |
Modifier and Type | Method and Description |
---|---|
private final void | addCount(long
the count to add x, int if <0, don't check resize, if <= 1 only check if uncontended check)Adds to count, and if table is too small and not already resizing, initiates transfer. |
pack-priv final int | |
pack-priv static final <K, V> boolean | casTabAt(ConcurrentHashMap.
|
public void | clear()
Overrides java. Implements java. Removes all of the mappings from this map. |
pack-priv static Class | comparableClassFor(Object x)
Returns x's Class if it is of the form "class C implements Comparable<C>", else null. |
pack-priv static int | compareComparables(Class<?> kc, Object k, Object x)
Returns k.compareTo(x) if x matches kc (k's screened comparable class), else 0. |
public V | Returns: the new value associated with the specified key, or null if nonekey with which the specified value is to be associated key, BiFunction<? super K, ? super V, ? extends V> the function to compute a value remappingFunction)Overrides default java. Attempts to compute a mapping for the specified key and its
current mapped value (or |
public V | Returns: the current (existing or computed) value associated with the specified key, or null if the computed value is nullkey with which the specified value is to be associated key, Function<? super K, ? extends V> the function to compute a value mappingFunction)Overrides default java. If the specified key is not already associated with a value,
attempts to compute its value using the given mapping function
and enters it into this map unless |
public V | Returns: the new value associated with the specified key, or null if nonekey with which a value may be associated key, BiFunction<? super K, ? super V, ? extends V> the function to compute a value remappingFunction)Overrides default java. If the value for the specified key is present, attempts to compute a new mapping given the key and its current mapped value. |
public boolean | |
public boolean | Returns: true if and only if the specified object
is a key in this table, as determined by the
equals method; false otherwisepossible key key)Overrides java. Implements java. Tests if the specified object is a key in this table. |
public boolean | Returns: true if this map maps one or more keys to the
specified valuevalue whose presence in this map is to be tested value)Overrides java. Implements java. Returns |
public Enumeration | Returns: an enumeration of the values in this tableReturns an enumeration of the values in this table. |
public Set | Returns: the set viewImplements abstract java. Implements java. Returns a |
public boolean | Returns: true if the specified object is equal to this mapobject to be compared for equality with this map o)Overrides java. Implements java. Compares the specified object with this map for equality. |
public void | forEach(BiConsumer<? super K, ? super V>
The action to be performed for each entry action)Overrides default java. Performs the given action for each entry in this map until all entries have been processed or the action throws an exception. |
public void | forEach(long
the (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, BiConsumer<? super K, ? super V> the action action)Performs the given action for each (key, value). |
public < the return type of the transformer U> void | forEach(long
the (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, BiFunction<? super K, ? super V, ? extends U> a function returning the transformation
for an element, or null if there is no transformation (in
which case the action is not applied) transformer, Consumer<? super U> the action action)Performs the given action for each non-null transformation of each (key, value). |
public void | forEachEntry(long
the (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Consumer<? super Map.the action action)Performs the given action for each entry. |
public < the return type of the transformer U> void | forEachEntry(long
the (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<Map.a function returning the transformation
for an element, or null if there is no transformation (in
which case the action is not applied) transformer,the action action)Performs the given action for each non-null transformation of each entry. |
public void | forEachKey(long
the (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Consumer<? super K> the action action)Performs the given action for each key. |
public < the return type of the transformer U> void | forEachKey(long
the (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<? super K, ? extends U> a function returning the transformation
for an element, or null if there is no transformation (in
which case the action is not applied) transformer, Consumer<? super U> the action action)Performs the given action for each non-null transformation of each key. |
public void | forEachValue(long
the (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Consumer<? super V> the action action)Performs the given action for each value. |
public < the return type of the transformer U> void | forEachValue(long
the (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<? super V, ? extends U> a function returning the transformation
for an element, or null if there is no transformation (in
which case the action is not applied) transformer, Consumer<? super U> the action action)Performs the given action for each non-null transformation of each value. |
private final void | |
public V | get(Object
the key whose associated value is to be returned key)Overrides java. Implements java. Returns the value to which the specified key is mapped,
or |
public V | Returns: the mapping for the key, if present; else the default valuethe key whose associated value is to be returned key, V the value to return if this map contains
no mapping for the given key defaultValue)Overrides default java. Returns the value to which the specified key is mapped, or the given default value if this map contains no mapping for the key. |
public int | Returns: the hash code value for this mapOverrides java. Implements java. Returns the hash code value for this |
pack-priv final ConcurrentHashMap. | helpTransfer(ConcurrentHashMap.
Helps transfer if a resize is in progress. |
private final ConcurrentHashMap. | |
public boolean | isEmpty()
Overrides java. Implements java. Returns |
public Enumeration | Returns: an enumeration of the keys in this tableReturns an enumeration of the keys in this table. |
public ConcurrentHashMap. | Returns: the set viewOverrides java. Implements java. Returns a |
public ConcurrentHashMap. | Returns: the set viewthe mapped value to use for any additions mappedValue)Returns a |
public long | |
public V | Returns: the new value associated with the specified key, or null if nonekey with which the specified value is to be associated key, V the value to use if absent value, BiFunction<? super V, ? super V, ? extends V> the function to recompute a value if present remappingFunction)Overrides default java. If the specified key is not already associated with a (non-null) value, associates it with the given value. |
public static < the element type of the returned set K> ConcurrentHashMap. | |
public static < the element type of the returned set K> ConcurrentHashMap. | |
public V | Returns: the previous value associated withkey , or
null if there was no mapping for key key with which the specified value is to be associated key, V value to be associated with the specified key value)Overrides java. Implements java. Maps the specified key to the specified value in this table. |
public void | putAll(Map<? extends K, ? extends V>
mappings to be stored in this map m)Overrides java. Implements java. Copies all of the mappings from the specified map to this one. |
public V | Returns: the previous value associated with the specified key, ornull if there was no mapping for the keykey with which the specified value is to be associated key, V value to be associated with the specified key value)Overrides default java. Implements java. If the specified key is not already associated with a value, associates it with the given value. |
pack-priv final V | |
private void | readObject(ObjectInputStream
the stream s)Reconstitutes this map from a stream (that is, deserializes it). |
public < the return type of the transformer U> U | Returns: the result of accumulating the given transformation of all (key, value) pairsthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, BiFunction<? super K, ? super V, ? extends U> a function returning the transformation
for an element, or null if there is no transformation (in
which case it is not combined) transformer, BiFunction<? super U, ? super U, ? extends U> a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all (key, value) pairs using the given reducer to combine values, or null if none. |
public Map. | Returns: the result of accumulating all entriesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, BiFunction<Map.a commutative associative combining function reducerReturns the result of accumulating all entries using the given reducer to combine values, or null if none. |
public < the return type of the transformer U> U | Returns: the result of accumulating the given transformation of all entriesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<Map.a function returning the transformation
for an element, or null if there is no transformation (in
which case it is not combined) transformer,a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all entries using the given reducer to combine values, or null if none. |
public double | Returns: the result of accumulating the given transformation of all entriesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToDoubleFunction<Map.a function returning the transformation
for an element transformer,the identity (initial default value) for the reduction basis, DoubleBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all entries using the given reducer to combine values, and the given basis as an identity value. |
public int | Returns: the result of accumulating the given transformation of all entriesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToIntFunction<Map.a function returning the transformation
for an element transformer,the identity (initial default value) for the reduction basis, IntBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all entries using the given reducer to combine values, and the given basis as an identity value. |
public long | Returns: the result of accumulating the given transformation of all entriesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToLongFunction<Map.a function returning the transformation
for an element transformer,the identity (initial default value) for the reduction basis, LongBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all entries using the given reducer to combine values, and the given basis as an identity value. |
public K | Returns: the result of accumulating all keys using the given reducer to combine values, or null if nonethe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, BiFunction<? super K, ? super K, ? extends K> a commutative associative combining function reducer)Returns the result of accumulating all keys using the given reducer to combine values, or null if none. |
public < the return type of the transformer U> U | Returns: the result of accumulating the given transformation of all keysthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<? super K, ? extends U> a function returning the transformation
for an element, or null if there is no transformation (in
which case it is not combined) transformer, BiFunction<? super U, ? super U, ? extends U> a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all keys using the given reducer to combine values, or null if none. |
public double | Returns: the result of accumulating the given transformation of all keysthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToDoubleFunction<? super K> a function returning the transformation
for an element transformer, double the identity (initial default value) for the reduction basis, DoubleBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all keys using the given reducer to combine values, and the given basis as an identity value. |
public int | Returns: the result of accumulating the given transformation of all keysthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToIntFunction<? super K> a function returning the transformation
for an element transformer, int the identity (initial default value) for the reduction basis, IntBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all keys using the given reducer to combine values, and the given basis as an identity value. |
public long | Returns: the result of accumulating the given transformation of all keysthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToLongFunction<? super K> a function returning the transformation
for an element transformer, long the identity (initial default value) for the reduction basis, LongBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all keys using the given reducer to combine values, and the given basis as an identity value. |
public double | Returns: the result of accumulating the given transformation of all (key, value) pairsthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToDoubleBiFunction<? super K, ? super V> a function returning the transformation
for an element transformer, double the identity (initial default value) for the reduction basis, DoubleBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all (key, value) pairs using the given reducer to combine values, and the given basis as an identity value. |
public int | Returns: the result of accumulating the given transformation of all (key, value) pairsthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToIntBiFunction<? super K, ? super V> a function returning the transformation
for an element transformer, int the identity (initial default value) for the reduction basis, IntBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all (key, value) pairs using the given reducer to combine values, and the given basis as an identity value. |
public long | Returns: the result of accumulating the given transformation of all (key, value) pairsthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToLongBiFunction<? super K, ? super V> a function returning the transformation
for an element transformer, long the identity (initial default value) for the reduction basis, LongBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all (key, value) pairs using the given reducer to combine values, and the given basis as an identity value. |
public V | Returns: the result of accumulating all valuesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, BiFunction<? super V, ? super V, ? extends V> a commutative associative combining function reducer)Returns the result of accumulating all values using the given reducer to combine values, or null if none. |
public < the return type of the transformer U> U | Returns: the result of accumulating the given transformation of all valuesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<? super V, ? extends U> a function returning the transformation
for an element, or null if there is no transformation (in
which case it is not combined) transformer, BiFunction<? super U, ? super U, ? extends U> a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all values using the given reducer to combine values, or null if none. |
public double | Returns: the result of accumulating the given transformation of all valuesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToDoubleFunction<? super V> a function returning the transformation
for an element transformer, double the identity (initial default value) for the reduction basis, DoubleBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all values using the given reducer to combine values, and the given basis as an identity value. |
public int | Returns: the result of accumulating the given transformation of all valuesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToIntFunction<? super V> a function returning the transformation
for an element transformer, int the identity (initial default value) for the reduction basis, IntBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all values using the given reducer to combine values, and the given basis as an identity value. |
public long | Returns: the result of accumulating the given transformation of all valuesthe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, ToLongFunction<? super V> a function returning the transformation
for an element transformer, long the identity (initial default value) for the reduction basis, LongBinaryOperator a commutative associative combining function reducer)Returns the result of accumulating the given transformation of all values using the given reducer to combine values, and the given basis as an identity value. |
public V | Returns: the previous value associated withkey , or
null if there was no mapping for key the key that needs to be removed key)Overrides java. Implements java. Removes the key (and its corresponding value) from this map. |
public boolean | Returns: true if the value was removedkey with which the specified value is associated key, Object value expected to be associated with the specified key value)Overrides default java. Implements java. Removes the entry for a key only if currently mapped to a given value. |
pack-priv boolean | |
pack-priv boolean | |
public boolean | Returns: true if the value was replacedkey with which the specified value is associated key, V value expected to be associated with the specified key oldValue, V value to be associated with the specified key newValue)Overrides default java. Implements java. Replaces the entry for a key only if currently mapped to a given value. |
public V | Returns: the previous value associated with the specified key, ornull if there was no mapping for the keykey with which the specified value is associated key, V value to be associated with the specified key value)Overrides default java. Implements java. Replaces the entry for a key only if currently mapped to some value. |
public void | replaceAll(BiFunction<? super K, ? super V, ? extends V>
the function to apply to each entry function)Overrides default java. Replaces each entry's value with the result of invoking the given function on that entry until all entries have been processed or the function throws an exception (optional operation). |
pack-priv final V | replaceNode(Object key, V value, Object cv)
Implementation for the four public remove/replace methods: Replaces node value with v, conditional upon match of cv if non-null. |
pack-priv static final int | |
public < the return type of the search function U> U | Returns: a non-null result from applying the given search function on each (key, value), or null if nonethe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, BiFunction<? super K, ? super V, ? extends U> a function returning a non-null
result on success, else null searchFunction)Returns a non-null result from applying the given search function on each (key, value), or null if none. |
public < the return type of the search function U> U | Returns: a non-null result from applying the given search function on each entry, or null if nonethe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<Map.a function returning a non-null
result on success, else null searchFunctionReturns a non-null result from applying the given search function on each entry, or null if none. |
public < the return type of the search function U> U | Returns: a non-null result from applying the given search function on each key, or null if nonethe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<? super K, ? extends U> a function returning a non-null
result on success, else null searchFunction)Returns a non-null result from applying the given search function on each key, or null if none. |
public < the return type of the search function U> U | Returns: a non-null result from applying the given search function on each value, or null if nonethe (estimated) number of elements
needed for this operation to be executed in parallel parallelismThreshold, Function<? super V, ? extends U> a function returning a non-null
result on success, else null searchFunction)Returns a non-null result from applying the given search function on each value, or null if none. |
pack-priv static final <K, V> void | |
public int | size()
Overrides java. Implements java. Returns the number of key-value mappings in this map. |
pack-priv static final int | |
pack-priv final long | |
pack-priv static final <K, V> ConcurrentHashMap. | |
private static final int | |
public String | Returns: a string representation of this mapOverrides java. Returns a string representation of this map. |
private final void | transfer(ConcurrentHashMap.
Moves and/or copies the nodes in each bin to new table. |
private final void | treeifyBin(ConcurrentHashMap.
Replaces all linked nodes in bin at given index unless table is too small, in which case resizes instead. |
private final void | tryPresize(int
number of elements (doesn't need to be perfectly accurate) size)Tries to presize table to accommodate the given number of elements. |
pack-priv static <K, V> ConcurrentHashMap. | untreeify(ConcurrentHashMap.
Returns a list of non-TreeNodes replacing those in given list. |
public Collection | Returns: the collection viewOverrides java. Implements java. Returns a |
private void |