Класс ConcurrentHashMap<K, V>
- Параметры типа:
-
K- тип ключей, хранимых в этой карте -
V- тип сопоставленных значений
- Все реализованные интерфейсы:
-
Serializable,ConcurrentMap<K,,V> Map<K,V>
public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable
Hashtable, и включает версии методов, соответствующие каждому методу Hashtable. Однако, даже если все операции безопасны для потоков, операции извлечения не подразумевают блокировку, и нет поддержки блокировки всей таблицы таким образом, который предотвращает весь доступ. Этот класс полностью совместим с Hashtable в программах, которые полагаются на его безопасность для потоков, но не на его детали синхронизации. Операции извлечения (включая get ) обычно не блокируются, поэтому могут перекрываться с операциями обновления (включая put и remove). Извлечения отражают результаты самых последних завершенных операций обновления, сохраняя их при запуске. (Более формально, операция обновления для данного ключа имеет отношение happens-before с любым (не нулевым) извлечением для этого ключа, сообщающим обновленное значение.) Для агрегатных операций, таких как putAll и clear, одновременные извлечения могут отражать вставку или удаление только некоторых записей. Аналогично, итераторы, сплитеры и перечисления возвращают элементы, отражающие состояние хеш-таблицы в какой-то момент или после создания итератора/перечисления. Они не выбрасывают ConcurrentModificationException. Однако итераторы предназначены для использования только одним потоком за раз. Имейте в виду, что результаты агрегатных методов статуса, включая size, isEmpty, и containsValue, обычно полезны только тогда, когда карта не подвергается одновременным обновлениям в других потоках. В противном случае результаты этих методов отражают временные состояния, которые могут быть достаточны для мониторинга или оценки, но не для управления программой.
Таблица динамически расширяется, когда возникает слишком много коллизий (т.е., ключи, имеющие разные хеш-коды, но попадающие в один и тот же слот по модулю размера таблицы), с ожидаемым средним эффектом поддержания примерно двух бинов на отображение (соответствующих порогу коэффициента заполнения 0,75 для изменения размера). Может быть значительное отклонение от этого среднего значения, когда отображения добавляются и удаляются, но в целом это поддерживает общепринятый компромисс время/пространство для хеш-таблиц. Однако изменение размера этой или любой другой хеш-таблицы может быть относительно медленной операцией. Когда это возможно, рекомендуется указать оценку размера в качестве необязательного
initialCapacity аргумента конструктора. Дополнительный необязательный loadFactor аргумент конструктора предоставляет дополнительный способ настройки начальной емкости таблицы, указав плотность таблицы, используемую для расчета количества места для выделения для заданного числа элементов. Кроме того, для совместимости с предыдущими версиями этого класса конструкторы могут необязательно указать ожидаемое concurrencyLevel как дополнительную подсказку для внутренней настройки размера. Обратите внимание, что использование многих ключей с точно таким же hashCode() - верный способ замедлить производительность любой хеш-таблицы. Для смягчения этого воздействия, когда ключи являются Comparable, этот класс может использовать порядок сравнения среди ключей для устранения совпадений.
Проекция Set ConcurrentHashMap может быть создана (используя newKeySet() или newKeySet(int)) или просмотрена (используя keySet(Object), когда интересны только ключи, а сопоставленные значения (возможно, временно) не используются или все принимают одно и то же значение отображения.
ConcurrentHashMap может использоваться как масштабируемая карта частот (вид гистограммы или мультимножества), используя значения LongAdder и инициализируя с помощью computeIfAbsent. Например, чтобы добавить счет к ConcurrentHashMap<String,LongAdder> freqs, можно использовать freqs.computeIfAbsent(key, k -> new LongAdder()).increment();
Этот класс и его представления и итераторы реализуют все необязательные методы интерфейсов Map и Iterator.
Как и Hashtable, но в отличие от HashMap, этот класс не позволяет null использоваться в качестве ключа или значения.
ConcurrentHashMap поддерживает набор последовательных и параллельных массовых операций, которые, в отличие от большинства методов Stream, предназначены для безопасного и часто разумного применения даже с картами, которые одновременно обновляются другими потоками; например, при вычислении сводного снимка значений в общей базе данных. Существует три типа операций, каждая с четырьмя формами, принимающими функции с ключами, значениями, записями и (ключ, значение) парами в качестве аргументов и/или возвращаемых значений. Поскольку элементы ConcurrentHashMap не упорядочены каким-либо особым образом и могут обрабатываться в разных порядках в разных параллельных выполнениях, корректность предоставленных функций не должна зависеть от какого-либо порядка или от любых других объектов или значений, которые могут временно изменяться во время вычислений; и, за исключением действий forEach, по идее должны быть без побочных эффектов. Массовые операции с объектами Map.Entry не поддерживают метод setValue.
- forEach: выполняет заданное действие для каждого элемента. Вариантная форма применяет заданное преобразование к каждому элементу перед выполнением действия.
- search: возвращает первое доступное ненулевое значение результата применения заданной функции к каждому элементу; пропуская дальнейший поиск при обнаружении результата.
- reduce: накапливает каждый элемент. Предоставленная функция редукции не может полагаться на порядок (более формально, она должна быть ассоциативной и коммутативной). Существует пять вариантов:
- Простые редукции. (Нет формы этого метода для аргументов функции (ключ, значение), так как нет соответствующего типа возвращаемого значения.)
- Преобразованные редукции, которые накапливают результаты заданной функции, примененной к каждому элементу.
- Редукции к скалярным двойным, длинным и целым числам, используя заданное значение базы.
Эти массовые операции принимают аргумент parallelismThreshold. Методы выполняются последовательно, если текущий размер карты оценивается как меньше заданного порога. Использование значения Long.MAX_VALUE подавляет всю параллельность. Использование значения 1 приводит к максимальной параллельности путем разделения на достаточно подзадач, чтобы полностью использовать ForkJoinPool.commonPool(), который используется для всех параллельных вычислений. Обычно вы сначала выбираете одно из этих крайних значений, а затем измеряете производительность, используя промежуточные значения, которые обеспечивают баланс между накладными расходами и пропускной способностью.
Свойства конкурентности массовых операций вытекают из свойств ConcurrentHashMap: Любое ненулевое значение, возвращаемое из get(key) и связанных методов доступа, имеет отношение happens-before с сопутствующей вставкой или обновлением. Результат любой массовой операции отражает состав этих отношений на элемент (но не обязательно является атомарным по отношению к карте в целом, если только она каким-то образом не известна как неактивная). И наоборот, поскольку ключи и значения в карте никогда не равны null, null служит надежным атомарным индикатором отсутствия какого-либо результата. Чтобы сохранить это свойство, null используется в качестве неявной базы для всех нескалярных операций редукции. Для версий с двойными, длинными и целыми числами база должна быть такой, которая, когда комбинируется с любым другим значением, возвращает это другое значение (более формально, это должна быть единица для редукции). Большинство распространенных редукций имеют эти свойства; например, вычисление суммы с базой 0 или минимум с базой MAX_VALUE.
Функции поиска и преобразования, предоставляемые в качестве аргументов, также должны возвращать null, чтобы указать отсутствие результата (в этом случае он не используется). В случае сопоставленных редукций это также позволяет преобразованиям служить фильтрами, возвращая null (или, в случае специализированных версий для примитивных типов, идентичную базу), если элемент не должен быть объединен. Вы можете создавать составные преобразования и фильтрации, сами компонуя их по этому правилу "null означает, что сейчас ничего нет", прежде чем использовать их в операциях поиска или редукции.
Методы, принимающие и/или возвращающие аргументы Entry, поддерживают ассоциации ключ-значение. Они могут быть полезны, например, при поиске ключа для наибольшего значения. Обратите внимание, что "простые" аргументы Entry могут быть предоставлены с помощью new
AbstractMap.SimpleEntry(k,v).
Массовые операции могут прерываться, выбрасывая исключение, обнаруженное при применении предоставленной функции. Имейте в виду при обработке таких исключений, что другие выполняемые одновременно функции также могли бы выбросить исключения или сделали бы это, если бы первое исключение не произошло.
Ускорения при параллельных по сравнению с последовательными формами являются общими, но не гарантированными. Параллельные операции, включающие краткие функции на небольших картах, могут выполняться медленнее, чем последовательные формы, если основная работа по параллелизации вычисления дороже, чем само вычисление. Аналогично, параллелизация может не привести к значительному параллелизму, если все процессоры заняты выполнением несвязанных задач.
Все аргументы всех методов задач должны быть не нулевыми.
Этот класс является членом Java Collections Framework.
- С момента:
- 1.5
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
ConcurrentHashMap.KeySetView<K, |
Вид ConcurrentHashMap как Set ключей, в котором добавления могут быть необязательно включены путем сопоставления с общим значением. |
Вложенные классы/интерфейсы, объявленные в классе java.util.AbstractMap
AbstractMap.SimpleEntry<K, V>, AbstractMap.SimpleImmutableEntry<K, V>
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ConcurrentHashMap() |
Создаёт новый пустой map с размерами таблицы по умолчанию (16). |
ConcurrentHashMap |
Создаёт новый пустой map с начальным размером таблицы, рассчитанным для указанного количества элементов без необходимости динамического изменения размера. |
ConcurrentHashMap |
Создаёт новый пустой map с начальным размером таблицы, основанным на заданном количестве элементов ( initialCapacity) и начальной плотности таблицы (loadFactor). |
ConcurrentHashMap |
Создаёт новый map с такими же отображениями, как и у заданного map. |
ConcurrentHashMap |
Создаёт новый map с такими же отображениями, как и у заданного map. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
void |
clear() |
Удаляет все сопоставления из этого отображения. |
V |
compute |
Попытка вычислить сопоставление для указанного ключа и его текущего сопоставленного значения (или null, если текущего сопоставления нет). |
V |
computeIfAbsent |
Если указанный ключ еще не связан со значением, пытается вычислить его значение с помощью заданной функции отображения и ввести его в это отображение, если null. |
V |
computeIfPresent |
Если значение для указанного ключа присутствует, пытается вычислить новое сопоставление, учитывая ключ и его текущее сопоставленное значение. |
boolean |
contains |
Проверяет, отображается ли какой-либо ключ в указанное значение в этой таблице. |
boolean |
containsKey |
Проверяет, является ли указанный объект ключом в этой таблице. |
boolean |
containsValue |
Возвращает true, если это отображение отображает один или несколько ключей на указанное значение. |
Enumeration<V> |
elements() |
Возвращает перечисление значений в этой таблице. |
Set<Map.Entry<K, |
entrySet() |
Возвращает представление Set сопоставлений, содержащихся в этом отображении. |
boolean |
equals |
Сравнивает указанный объект с этим отображением на равенство. |
void |
forEach |
Выполняет заданное действие для каждой пары (ключ, значение). |
<U> void |
forEach |
Выполняет заданное действие для каждого непустого преобразования каждой пары (ключ, значение). |
void |
forEachEntry |
Выполняет заданное действие для каждой записи. |
<U> void |
forEachEntry |
Выполняет заданное действие для каждого непустого преобразования каждой записи. |
void |
forEachKey |
Выполняет заданное действие для каждого ключа. |
<U> void |
forEachKey |
Выполняет заданное действие для каждого непустого преобразования каждого ключа. |
void |
forEachValue |
Выполняет заданное действие для каждого значения. |
<U> void |
forEachValue |
Выполняет заданное действие для каждого непустого преобразования каждого значения. |
V |
get |
Возвращает значение, которому сопоставлен указанный ключ, или null, если в этом отображении нет сопоставления для ключа. |
V |
getOrDefault |
Возвращает значение, которому сопоставлен указанный ключ, или заданное значение по умолчанию, если в этом отображении нет сопоставления для ключа. |
int |
hashCode() |
Возвращает значение кода хэша для этого Map, т. е. сумму, для каждой пары ключ-значение в отображении, key.hashCode() ^ value.hashCode(). |
boolean |
isEmpty() |
Возвращает true, если это отображение не содержит сопоставлений ключ-значение. |
Enumeration<K> |
keys() |
Возвращает перечисление ключей в этой таблице. |
ConcurrentHashMap.KeySetView<K, |
keySet() |
Возвращает представление Set ключей, содержащихся в этом отображении. |
ConcurrentHashMap.KeySetView<K, |
keySet |
Возвращает представление Set ключей в этом отображении, используя заданное общее сопоставленное значение для любых добавлений (т. е., Collection.add(E) и Collection.addAll(Collection)). |
long |
mappingCount() |
Возвращает количество сопоставлений. |
V |
merge |
Если указанный ключ еще не связан со значением (не равным null), связывает его с заданным значением. |
static <K> ConcurrentHashMap.KeySetView<K, |
newKeySet() |
Создает новое Set, поддерживаемое ConcurrentHashMap, от заданного типа к Boolean.TRUE. |
static <K> ConcurrentHashMap.KeySetView<K, |
newKeySet |
Создает новое Set, поддерживаемое ConcurrentHashMap, от заданного типа к Boolean.TRUE. |
V |
put |
Сопоставляет указанный ключ со значением в этой таблице. |
void |
putAll |
Копирует все сопоставления из указанного отображения в это. |
V |
putIfAbsent |
Если указанный ключ еще не связан со значением, связывает его с заданным значением. |
<U> U |
reduce |
Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений, или null, если таковых нет. |
Map.Entry<K, |
reduceEntries |
Возвращает результат накопления всех записей с использованием заданного редуктора для объединения значений, или null, если таковых нет. |
<U> U |
reduceEntries |
Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений, или null, если таковых нет. |
double |
reduceEntriesToDouble |
Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
int |
reduceEntriesToInt |
Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
long |
reduceEntriesToLong |
Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
K |
reduceKeys |
Возвращает результат накопления всех ключей с использованием заданного редуктора для объединения значений, или null, если таковых нет. |
<U> U |
reduceKeys |
Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений, или null, если таковых нет. |
double |
reduceKeysToDouble |
Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
int |
reduceKeysToInt |
Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
long |
reduceKeysToLong |
Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
double |
reduceToDouble |
Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
int |
reduceToInt |
Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
long |
reduceToLong |
Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
V |
reduceValues |
Возвращает результат накопления всех значений с использованием заданного редуктора для объединения значений, или null, если таковых нет. |
<U> U |
reduceValues |
Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для объединения значений, или null, если таковых нет. |
double |
reduceValuesToDouble |
Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичности. |
int |
reduceValuesToInt |
Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения. |
long |
reduceValuesToLong |
Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения. |
V |
remove |
Удаляет ключ (и соответствующее значение) из этой карты. |
boolean |
remove |
Удаляет запись для ключа только в том случае, если он в данный момент сопоставлен с заданным значением. |
V |
replace |
Заменяет запись для ключа только в том случае, если она в данный момент сопоставлена с каким-либо значением. |
boolean |
replace |
Заменяет запись для ключа только в том случае, если она в данный момент сопоставлена с заданным значением. |
<U> U |
search |
Возвращает ненулевое значение, полученное при применении заданной функции поиска к каждой паре (ключ, значение), или null, если такового нет. |
<U> U |
searchEntries |
Возвращает ненулевое значение, полученное при применении заданной функции поиска к каждой записи, или null, если такового нет. |
<U> U |
searchKeys |
Возвращает ненулевое значение, полученное при применении заданной функции поиска к каждому ключу, или null, если такового нет. |
<U> U |
searchValues |
Возвращает ненулевое значение, полученное при применении заданной функции поиска к каждому значению, или null, если такового нет. |
int |
size() |
Возвращает количество сопоставлений ключ-значение в этой карте. |
String |
toString() |
Возвращает строковое представление этой карты. |
Collection<V> |
values() |
Возвращает представление Collection значений, содержащихся в этой карте. |
Методы, объявленные в классе java.util.AbstractMap
clone, isEmpty, size
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.util.concurrent.ConcurrentMap
forEach, replaceAll
Подробное описание конструкторов
ConcurrentHashMap
public ConcurrentHashMap()
ConcurrentHashMap
public ConcurrentHashMap(int initialCapacity)
- Параметры:
-
initialCapacity- Реализация выполняет внутреннюю настройку размера для размещения этого количества элементов. - Исключения:
-
IllegalArgumentException- если начальная ёмкость элементов отрицательна
ConcurrentHashMap
public ConcurrentHashMap(Map<? extends K,? extends V> m)
- Параметры:
-
m- карта
ConcurrentHashMap
public ConcurrentHashMap(int initialCapacity, float loadFactor)
initialCapacity) и начальной плотности таблицы (loadFactor).- Параметры:
-
initialCapacity- начальная ёмкость. Реализация выполняет внутреннюю настройку размера для размещения этого количества элементов, учитывая заданный коэффициент заполнения. -
loadFactor- коэффициент заполнения (плотность таблицы) для определения начального размера таблицы - Исключения:
-
IllegalArgumentException- если начальная ёмкость элементов отрицательна или коэффициент заполнения не положителен - С тех пор:
- 1.6
ConcurrentHashMap
public ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)
initialCapacity), начальной плотности таблицы (loadFactor) и количестве одновременно обновляемых потоков (concurrencyLevel).- Параметры:
-
initialCapacity- начальная ёмкость. Реализация выполняет внутреннюю настройку размера для размещения этого количества элементов, учитывая заданный коэффициент заполнения. -
loadFactor- коэффициент заполнения (плотность таблицы) для определения начального размера таблицы -
concurrencyLevel- предполагаемое количество одновременно обновляемых потоков. Реализация может использовать это значение как подсказку для настройки размера. - Исключения:
-
IllegalArgumentException- если начальная ёмкость отрицательна, или коэффициент заполнения или concurrencyLevel не положительны
Подробное описание методов
size
public int size()
Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.- Указано в:
-
sizeв интерфейсеMap<K,V> - Переопределяет:
-
sizeв классеAbstractMap<K,V> - Возвращает:
- количество пар ключ-значение в этой карте
isEmpty
public boolean isEmpty()
true если эта карта не содержит пар ключ-значение.- Указано в:
-
isEmptyв интерфейсеMap<K,V> - Переопределяет:
-
isEmptyв классеAbstractMap<K,V> - Возвращает:
-
trueесли эта карта не содержит пар ключ-значение
get
public V get(Object key)
null если в этой карте нет отображения для ключа. Более формально, если эта карта содержит отображение от ключа k к значению v, такое что key.equals(k), то этот метод возвращает v; в противном случае он возвращает null. (Может быть не более одного такого отображения.)
- Указано в:
-
getв интерфейсеMap<K,V> - Переопределяет:
-
getв классеAbstractMap<K,V> - Параметры:
-
key- ключ, значение которого нужно вернуть - Возвращает:
- значение, которому соответствует указанный ключ, или
nullесли в этой карте нет отображения для ключа - Исключения:
-
NullPointerException- если указанный ключ равен null
containsKey
public boolean containsKey(Object key)
- Указано в:
-
containsKeyв интерфейсеMap<K,V> - Переопределяет:
-
containsKeyв классеAbstractMap<K,V> - Параметры:
-
key- возможный ключ - Возвращает:
-
trueтогда и только тогда, когда указанный объект является ключом в этой таблице, как определено методомequals;falseв противном случае - Исключения:
-
NullPointerException- если указанный ключ равен null
containsValue
public boolean containsValue(Object value)
true если эта карта отображает один или несколько ключей на указанное значение. Примечание: для выполнения этого метода может потребоваться полное обход карты, и он намного медленнее, чем метод containsKey.- Указано в:
-
containsValueв интерфейсеMap<K,V> - Переопределяет:
-
containsValueв классеAbstractMap<K,V> - Параметры:
-
value- значение, присутствие которого в этой карте нужно проверить - Возвращает:
-
trueесли эта карта отображает один или несколько ключей на указанное значение - Исключения:
-
NullPointerException- если указанное значение равно null
put
public V put(K key, V value)
Значение можно получить, вызвав метод get с ключом, равным исходному ключу.
- Указано в:
-
putв интерфейсеMap<K,V> - Переопределяет:
-
putв классеAbstractMap<K,V> - Параметры:
-
key- ключ, которому нужно сопоставить указанное значение -
value- значение, которое нужно сопоставить с указанным ключом - Возвращает:
- предыдущее значение, связанное с
key, илиnullесли дляkeyне было отображения - Исключения:
-
NullPointerException- если указанный ключ или значение равны null
putAll
public void putAll(Map<? extends K,? extends V> m)
- Указано в:
-
putAllв интерфейсеMap<K,V> - Переопределяет:
-
putAllв классеAbstractMap<K,V> - Параметры:
-
m- отображения, которые нужно сохранить в этой карте
remove
public V remove(Object key)
- Указано в:
-
removeв интерфейсеMap<K,V> - Переопределяет:
-
removeв классеAbstractMap<K,V> - Параметры:
-
key- ключ, который нужно удалить - Возвращает:
- предыдущее значение, связанное с
key, илиnullесли дляkeyне было отображения - Исключения:
-
NullPointerException- если указанный ключ равен null
clear
public void clear()
- Указано в:
-
clearв интерфейсеMap<K,V> - Переопределяет:
-
clearв классеAbstractMap<K,V>
keySet
public ConcurrentHashMap.KeySetView<K,V> keySet()
Set ключей, содержащихся в этой карте. Множество поддерживается картой, поэтому изменения в карте отражаются в множестве и наоборот. Множество поддерживает удаление элементов, что удаляет соответствующее отображение из этой карты, посредством операций Iterator.remove, Set.remove, removeAll, retainAll, и clear. Оно не поддерживает операции add или addAll. Итераторы и разделители представления являются слабо согласованными.
Метод spliterator представления сообщает о Spliterator.CONCURRENT, Spliterator.DISTINCT и Spliterator.NONNULL.
- Указано в:
-
keySetв интерфейсеMap<K,V> - Переопределяет:
-
keySetв классеAbstractMap<K,V> - Возвращает:
- представление множества
значения
public Collection<V> values()
Collection значений, содержащихся в этом отображении. Коллекция поддерживается отображением, поэтому изменения в отображении отражаются в коллекции и наоборот. Коллекция поддерживает удаление элементов, что удаляет соответствующее отображение из этого отображения, посредством операций Iterator.remove, Collection.remove, removeAll, retainAll, и clear. Она не поддерживает операции add или addAll. Итераторы и итераторы сплиттеров представления являются слабо согласованными.
Представление spliterator сообщает о Spliterator.CONCURRENT и Spliterator.NONNULL.
- Specified by:
-
valuesв интерфейсеMap<K,V> - Overrides:
-
valuesв классеAbstractMap<K,V> - Returns:
- представление коллекции
entrySet
public Set<Map.Entry<K,V>> entrySet()
Set отображений, содержащихся в этом отображении. Множество поддерживается отображением, поэтому изменения в отображении отражаются в множестве и наоборот. Множество поддерживает удаление элементов, что удаляет соответствующее отображение из отображения, посредством операций Iterator.remove, Set.remove, removeAll, retainAll, и clear операций. Итераторы и итераторы сплиттеров представления являются слабо согласованными.
Представление spliterator сообщает о Spliterator.CONCURRENT, Spliterator.DISTINCT, и Spliterator.NONNULL.
- Specified by:
-
entrySetв интерфейсеMap<K,V> - Returns:
- представление множества
hashCode
public int hashCode()
Map, т. е. сумму, для каждой пары ключ-значение в отображении, key.hashCode() ^ value.hashCode().- Specified by:
-
hashCodeв интерфейсеMap<K,V> - Overrides:
-
hashCodeв классеAbstractMap<K,V> - Returns:
- значение хэш-кода для этого отображения
- See Also:
toString
public String toString()
{}"). Соседние отображения разделяются символами ", " (запятая и пробел). Каждое отображение ключ-значение отображается как ключ, за которым следует знак равенства ("="), за которым следует соответствующее значение.- Overrides:
-
toStringв классеAbstractMap<K,V> - Returns:
- строковое представление этого отображения
equals
public boolean equals(Object o)
true если заданный объект является отображением с теми же отображениями, что и это отображение. Эта операция может возвращать вводящие в заблуждение результаты, если оба отображения одновременно изменяются во время выполнения этого метода.- Specified by:
-
equalsв интерфейсеMap<K,V> - Overrides:
-
equalsв классеAbstractMap<K,V> - Parameters:
-
o- объект, который нужно сравнить на равенство с этим отображением - Returns:
-
trueесли указанный объект равен этому отображению - See Also:
putIfAbsent
public V putIfAbsent(K key, V value)
map:
if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key); за исключением того, что действие выполняется атомарно.- Specified by:
-
putIfAbsentв интерфейсеConcurrentMap<K,V> - Specified by:
-
putIfAbsentв интерфейсеMap<K,V> - Parameters:
-
key- ключ, с которым нужно связать заданное значение -
value- значение, которое нужно связать с указанным ключом - Returns:
- предыдущее значение, связанное с указанным ключом, или
nullесли для ключа не было отображения - Throws:
-
NullPointerException- если указанный ключ или значение равно null
remove
public boolean remove(Object key, Object value)
map:
if (map.containsKey(key)
&& Objects.equals(map.get(key), value)) {
map.remove(key);
return true;
} else {
return false;
} за исключением того, что действие выполняется атомарно.- Specified by:
-
removeв интерфейсеConcurrentMap<K,V> - Specified by:
-
removeв интерфейсеMap<K,V> - Parameters:
-
key- ключ, с которым связано указанное значение -
value- ожидаемое значение, связанное с указанным ключом - Returns:
-
trueесли значение было удалено - Throws:
-
NullPointerException- если указанный ключ равен null
replace
public boolean replace(K key, V oldValue, V newValue)
map:
if (map.containsKey(key)
&& Objects.equals(map.get(key), oldValue)) {
map.put(key, newValue);
return true;
} else {
return false;
} за исключением того, что действие выполняется атомарно.- Specified by:
-
replaceв интерфейсеConcurrentMap<K,V> - Specified by:
-
replaceв интерфейсеMap<K,V> - Parameters:
-
key- ключ, с которым связано указанное значение -
oldValue- ожидаемое значение, связанное с указанным ключом -
newValue- значение, которое нужно связать с указанным ключом - Returns:
-
trueесли значение было заменено - Throws:
-
NullPointerException- если любой из аргументов равен null
replace
public V replace(K key, V value)
map:
if (map.containsKey(key))
return map.put(key, value);
else
return null; за исключением того, что действие выполняется атомарно.- Specified by:
-
replaceв интерфейсеConcurrentMap<K,V> - Specified by:
-
replaceв интерфейсеMap<K,V> - Parameters:
-
key- ключ, с которым связано указанное значение -
value- значение, которое нужно связать с указанным ключом - Returns:
- предыдущее значение, связанное с указанным ключом, или
nullесли для ключа не было отображения - Throws:
-
NullPointerException- если указанный ключ или значение равно null
getOrDefault
public V getOrDefault(Object key, V defaultValue)
- Specified by:
-
getOrDefaultв интерфейсеConcurrentMap<K,V> - Specified by:
-
getOrDefaultв интерфейсеMap<K,V> - Parameters:
-
key- ключ, связанное значение которого нужно вернуть -
defaultValue- значение, которое нужно вернуть, если в этом отображении нет отображения для данного ключа - Returns:
- отображение для ключа, если оно присутствует; иначе значение по умолчанию
- Throws:
-
NullPointerException- если указанный ключ равен null
computeIfAbsent
public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)
null. Весь вызов метода выполняется атомарно. Поставленная функция вызывается ровно один раз за вызов этого метода, если ключ отсутствует, иначе вообще не вызывается. Некоторые попытки обновлений этого отображения другими потоками могут быть заблокированы во время вычисления, поэтому вычисление должно быть коротким и простым. Функция отображения не должна изменять это отображение во время вычисления.
- Specified by:
-
computeIfAbsentв интерфейсеConcurrentMap<K,V> - Specified by:
-
computeIfAbsentв интерфейсеMap<K,V> - Parameters:
-
key- ключ, с которым нужно связать заданное значение -
mappingFunction- функция для вычисления значения - Returns:
- текущее (существующее или вычисленное) значение, связанное с указанным ключом, или null, если вычисленное значение равно null
- Throws:
-
NullPointerException- если указанный ключ или mappingFunction равны null -
IllegalStateException- если вычисление обнаруживает попытку рекурсивного обновления этого отображения, которая в противном случае никогда не завершится -
RuntimeException- или ошибка, если функция отображения делает это, в этом случае отображение остается незавершенным
computeIfPresent
public V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
Функция переопределения не должна изменять эту карту во время вычислений.
- Specified by:
-
computeIfPresentin interfaceConcurrentMap<K,V> - Specified by:
-
computeIfPresentin interfaceMap<K,V> - Parameters:
-
key- ключ, с которым может быть связано значение -
remappingFunction- функция для вычисления значения - Returns:
- новое значение, связанное с указанным ключом, или null, если нет
- Throws:
-
NullPointerException- если указанный ключ или remappingFunction равны null -
IllegalStateException- если вычисление обнаруживает попытку рекурсивного обновления этой карты, которая в противном случае никогда не завершится -
RuntimeException- или ошибка, если функция remappingFunction делает это, в этом случае отображение не изменяется
compute
public V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
null если нет текущего отображения). Весь вызов метода выполняется атомарно. Поставленная функция вызывается ровно один раз на каждый вызов этого метода. Некоторые попытки операций обновления в этой карте другими потоками могут быть заблокированы во время выполнения вычислений, поэтому вычисление должно быть коротким и простым. Функция переопределения не должна изменять эту карту во время вычислений.
- Specified by:
-
computein interfaceConcurrentMap<K,V> - Specified by:
-
computein interfaceMap<K,V> - Parameters:
-
key- ключ, с которым должно быть связано указанное значение -
remappingFunction- функция для вычисления значения - Returns:
- новое значение, связанное с указанным ключом, или null, если нет
- Throws:
-
NullPointerException- если указанный ключ или remappingFunction равны null -
IllegalStateException- если вычисление обнаруживает попытку рекурсивного обновления этой карты, которая в противном случае никогда не завершится -
RuntimeException- или ошибка, если функция remappingFunction делает это, в этом случае отображение не изменяется
merge
public V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
null. Весь вызов метода выполняется атомарно. Некоторые попытки операций обновления в этой карте другими потоками могут быть заблокированы во время выполнения вычислений, поэтому вычисление должно быть коротким и простым, и не должно пытаться обновлять другие отображения в этой карте.- Specified by:
-
mergein interfaceConcurrentMap<K,V> - Specified by:
-
mergein interfaceMap<K,V> - Parameters:
-
key- ключ, с которым должно быть связано указанное значение -
value- значение, используемое, если отсутствует -
remappingFunction- функция для повторного вычисления значения, если оно присутствует - Returns:
- новое значение, связанное с указанным ключом, или null, если нет
- Throws:
-
NullPointerException- если указанный ключ или функция переопределения равны null -
RuntimeException- или ошибка, если функция переопределения делает это, в этом случае отображение не изменяется
contains
public boolean contains(Object value)
Обратите внимание, что этот метод функционально идентичен containsValue(Object) и существует только для обеспечения полной совместимости с классом Hashtable, который поддерживал этот метод до введения Java Collections Framework.
- Parameters:
-
value- значение для поиска - Returns:
-
trueтогда и только тогда, когда какой-либо ключ отображается на аргументvalueв этой таблице, как определяется методомequals;falseв противном случае - Throws:
-
NullPointerException- если указанное значение равно null
keys
public Enumeration<K> keys()
- Returns:
- перечисление ключей в этой таблице
- See Also:
elements
public Enumeration<V> elements()
- Returns:
- перечисление значений в этой таблице
- See Also:
mappingCount
public long mappingCount()
size(), так как ConcurrentHashMap может содержать больше отображений, чем можно представить целым числом. Возвращаемое значение является оценкой; фактическое количество может отличаться, если происходят одновременные вставки или удаления.- Returns:
- количество отображений
- Since:
- 1.8
newKeySet
public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet()
Set, поддерживаемый ConcurrentHashMap, от заданного типа к Boolean.TRUE.- Type Parameters:
-
K- тип элемента возвращаемого множества - Returns:
- новое множество
- Since:
- 1.8
newKeySet
public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet(int initialCapacity)
Set, поддерживаемое ConcurrentHashMap, от заданного типа к Boolean.TRUE.- Type Parameters:
-
K- тип элемента возвращаемого множества - Parameters:
-
initialCapacity- Реализация выполняет внутреннее изменение размера, чтобы вместить указанное количество элементов. - Returns:
- новое множество
- Throws:
-
IllegalArgumentException- если начальная емкость элементов отрицательна - Since:
- 1.8
keySet
public ConcurrentHashMap.KeySetView<K,V> keySet(V mappedValue)
Set ключей в этой карте, используя заданное общее сопоставленное значение для любых добавлений (т.е., Collection.add(E) и Collection.addAll(Collection)). Это, конечно, подходит только в том случае, если приемлемо использовать одно и то же значение для всех добавлений из этого представления.- Parameters:
-
mappedValue- сопоставленное значение, используемое для любых добавлений - Returns:
- представление множества
- Throws:
-
NullPointerException- если mappedValue равно null
forEach
public void forEach(long parallelismThreshold, BiConsumer<? super K,? super V> action)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
action- действие - Since:
- 1.8
forEach
public <U> void forEach(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> transformer, Consumer<? super U> action)
- Type Parameters:
-
U- тип возвращаемого значения трансформатором - Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае действие не применяется) -
action- действие - Since:
- 1.8
search
public <U> U search(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> searchFunction)
- Type Parameters:
-
U- тип возвращаемого значения функцией поиска - Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
searchFunction- функция, возвращающая непустой результат при успехе, иначе null - Returns:
- результат применения заданной функции поиска к каждой паре (ключ, значение), или null, если нет
- Since:
- 1.8
reduce
public <U> U reduce(long parallelismThreshold, BiFunction<? super K,? super V,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
- Type Parameters:
-
U- тип возвращаемого значения преобразователя - Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента или null, если преобразования нет (в этом случае оно не комбинируется) -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления заданного преобразования всех пар (ключ, значение)
- Since:
- 1.8
reduceToDouble
public double reduceToDouble(long parallelismThreshold, ToDoubleBiFunction<? super K,? super V> transformer, double basis, DoubleBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления заданного преобразования всех пар (ключ, значение)
- Since:
- 1.8
reduceToLong
public long reduceToLong(long parallelismThreshold, ToLongBiFunction<? super K,? super V> transformer, long basis, LongBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления заданного преобразования всех пар (ключ, значение)
- Since:
- 1.8
reduceToInt
public int reduceToInt(long parallelismThreshold, ToIntBiFunction<? super K,? super V> transformer, int basis, IntBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления заданного преобразования всех пар (ключ, значение)
- Since:
- 1.8
forEachKey
public void forEachKey(long parallelismThreshold, Consumer<? super K> action)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
action- действие - Since:
- 1.8
forEachKey
public <U> void forEachKey(long parallelismThreshold, Function<? super K,? extends U> transformer, Consumer<? super U> action)
- Type Parameters:
-
U- тип возвращаемого значения преобразователя - Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента или null, если преобразования нет (в этом случае действие не применяется) -
action- действие - Since:
- 1.8
searchKeys
public <U> U searchKeys(long parallelismThreshold, Function<? super K,? extends U> searchFunction)
- Type Parameters:
-
U- тип возвращаемого значения функции поиска - Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
searchFunction- функция, возвращающая не null результат при успехе, иначе null - Returns:
- не null результат применения заданной функции поиска к каждому ключу или null, если такового нет
- Since:
- 1.8
reduceKeys
public K reduceKeys(long parallelismThreshold, BiFunction<? super K,? super K,? extends K> reducer)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления всех ключей с использованием заданного редуктора для объединения значений или null, если таких нет
- Since:
- 1.8
reduceKeys
public <U> U reduceKeys(long parallelismThreshold, Function<? super K,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
- Type Parameters:
-
U- тип возвращаемого значения преобразователя - Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента или null, если преобразования нет (в этом случае оно не комбинируется) -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления заданного преобразования всех ключей
- Since:
- 1.8
reduceKeysToDouble
public double reduceKeysToDouble(long parallelismThreshold, ToDoubleFunction<? super K> transformer, double basis, DoubleBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления заданного преобразования всех ключей
- Since:
- 1.8
reduceKeysToLong
public long reduceKeysToLong(long parallelismThreshold, ToLongFunction<? super K> transformer, long basis, LongBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления заданного преобразования всех ключей
- Since:
- 1.8
reduceKeysToInt
public int reduceKeysToInt(long parallelismThreshold, ToIntFunction<? super K> transformer, int basis, IntBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция объединения - Returns:
- результат накопления заданного преобразования всех ключей
- Since:
- 1.8
forEachValue
public void forEachValue(long parallelismThreshold, Consumer<? super V> action)
- Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
action- действие - Since:
- 1.8
forEachValue
public <U> void forEachValue(long parallelismThreshold, Function<? super V,? extends U> transformer, Consumer<? super U> action)
- Type Parameters:
-
U- тип возвращаемого значения преобразователя - Parameters:
-
parallelismThreshold- (оценочное) количество элементов, необходимое для выполнения этой операции в параллельном режиме -
transformer- функция, возвращающая преобразование для элемента или null, если преобразования нет (в этом случае действие не применяется) -
action- действие - Since:
- 1.8
searchValues
public <U> U searchValues(long parallelismThreshold, Function<? super V,? extends U> searchFunction)
- Type Parameters:
-
U- тип возвращаемого значения функции поиска - Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
searchFunction- функция, возвращающая ненулевой результат при успехе, иначе null - Returns:
- ненулевой результат применения заданной функции поиска к каждому значению или null, если такового нет
- Since:
- 1.8
reduceValues
public V reduceValues(long parallelismThreshold, BiFunction<? super V,? super V,? extends V> reducer)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления всех значений
- Since:
- 1.8
reduceValues
public <U> U reduceValues(long parallelismThreshold, Function<? super V,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
- Type Parameters:
-
U- тип возвращаемого значения преобразователя - Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента или null, если преобразования нет (в этом случае оно не комбинируется) -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления заданного преобразования всех значений
- Since:
- 1.8
reduceValuesToDouble
public double reduceValuesToDouble(long parallelismThreshold, ToDoubleFunction<? super V> transformer, double basis, DoubleBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления заданного преобразования всех значений
- Since:
- 1.8
reduceValuesToLong
public long reduceValuesToLong(long parallelismThreshold, ToLongFunction<? super V> transformer, long basis, LongBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления заданного преобразования всех значений
- Since:
- 1.8
reduceValuesToInt
public int reduceValuesToInt(long parallelismThreshold, ToIntFunction<? super V> transformer, int basis, IntBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления заданного преобразования всех значений
- Since:
- 1.8
forEachEntry
public void forEachEntry(long parallelismThreshold, Consumer<? super Map.Entry<K,V>> action)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
action- действие - Since:
- 1.8
forEachEntry
public <U> void forEachEntry(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> transformer, Consumer<? super U> action)
- Type Parameters:
-
U- тип возвращаемого значения преобразователя - Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента или null, если преобразования нет (в этом случае действие не применяется) -
action- действие - Since:
- 1.8
searchEntries
public <U> U searchEntries(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> searchFunction)
- Type Parameters:
-
U- тип возвращаемого значения функции поиска - Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
searchFunction- функция, возвращающая ненулевой результат при успехе, иначе null - Returns:
- ненулевой результат применения заданной функции поиска к каждой записи или null, если такового нет
- Since:
- 1.8
reduceEntries
public Map.Entry<K,V> reduceEntries(long parallelismThreshold, BiFunction<Map.Entry<K,V>,Map.Entry<K,V>,? extends Map.Entry<K,V>> reducer)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления всех записей
- Since:
- 1.8
reduceEntries
public <U> U reduceEntries(long parallelismThreshold, Function<Map.Entry<K,V>,? extends U> transformer, BiFunction<? super U,? super U,? extends U> reducer)
- Type Parameters:
-
U- тип возвращаемого значения преобразователя - Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента или null, если преобразования нет (в этом случае оно не комбинируется) -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления заданного преобразования всех записей
- Since:
- 1.8
reduceEntriesToDouble
public double reduceEntriesToDouble(long parallelismThreshold, ToDoubleFunction<Map.Entry<K,V>> transformer, double basis, DoubleBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления заданного преобразования всех записей
- Since:
- 1.8
reduceEntriesToLong
public long reduceEntriesToLong(long parallelismThreshold, ToLongFunction<Map.Entry<K,V>> transformer, long basis, LongBinaryOperator reducer)
- Parameters:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента -
basis- идентичность (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная функция комбинирования - Returns:
- результат накопления заданного преобразования всех записей
- Since:
- 1.8
reduceEntriesToInt
public int reduceEntriesToInt(long parallelismThreshold, ToIntFunction<Map.Entry<K,V>> transformer, int basis, IntBinaryOperator reducer)
- Параметры:
-
parallelismThreshold- (оцененное) количество элементов, необходимое для выполнения этой операции параллельно -
transformer- функция, возвращающая преобразование для элемента -
basis- тождество (начальное значение по умолчанию) для редукции -
reducer- коммутативная ассоциативная комбинирующая функция - Возвращает:
- результат накопления заданного преобразования всех записей
- С:
- 1.8
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html