Класс 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 с любым (не null) получением этого ключа, возвращающим обновлённое значение.) Для агрегатных операций, таких как putAll и clear, параллельные операции получения могут отражать добавление или удаление лишь некоторых записей. Аналогично, итераторы, сплитераторы и перечисления возвращают элементы, отражающие состояние хеш-таблицы в некоторый момент времени после создания итератора/перечисления или в момент его создания. Они не выбрасывают исключение ConcurrentModificationException. Однако итераторы предназначены для использования только одним потоком одновременно. Следует учитывать, что результаты агрегатных методов состояния, включая size, isEmpty и containsValue, обычно полезны только тогда, когда карта не подвергается параллельным обновлениям в других потоках. В противном случае результаты этих методов отражают временные состояния, которые могут быть приемлемы для мониторинга или оценки, но не для управления программой.
Размер таблицы динамически увеличивается при слишком большом количестве коллизий (то есть когда ключи с различными хеш-кодами попадают в один и тот же слот по модулю размера таблицы); ожидается, что в среднем при этом будет поддерживаться примерно два сегмента на отображение (что соответствует порогу коэффициента заполнения 0,75 для изменения размера). При добавлении и удалении отображений возможны значительные отклонения от этого среднего значения, но в целом такой подход обеспечивает общепринятый компромисс между временем и пространством для хеш-таблиц. Однако изменение размера этой или любой другой хеш-таблицы может быть относительно медленной операцией. Если возможно, рекомендуется передать оценку размера в качестве необязательного аргумента конструктора
initialCapacity. Дополнительный необязательный аргумент конструктора loadFactor позволяет настроить начальную ёмкость таблицы, задавая плотность таблицы, используемую для вычисления объёма памяти, выделяемого для заданного количества элементов. Кроме того, для совместимости с предыдущими версиями этого класса конструкторы могут дополнительно принимать ожидаемое значение concurrencyLevel в качестве подсказки для внутреннего определения размера. Обратите внимание, что использование множества ключей с одинаковым значением hashCode() — надёжный способ снизить производительность любой хеш-таблицы. Чтобы смягчить этот эффект, если ключи реализуют интерфейс Comparable, этот класс может использовать порядок сравнения ключей для разрешения совпадений.
Представление ConcurrentHashMap в виде Set можно создать (с помощью 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: объединяет элементы. Функция редукции не должна зависеть от порядка (формальнее: она должна быть одновременно ассоциативной и коммутативной). Существует пять вариантов:
- Обычная редукция. (Формы этого метода для аргументов-функций (ключ, значение) нет, поскольку соответствующего типа возвращаемого значения не существует.)
- Редукция с отображением, объединяющая результаты применения заданной функции к каждому элементу.
- Редукция до скалярных значений типа double, long и int с использованием заданного базового значения.
Эти массовые операции принимают аргумент parallelismThreshold. Методы выполняются последовательно, если предполагаемый текущий размер карты меньше заданного порога. Значение Long.MAX_VALUE отключает параллелизм. Значение 1 обеспечивает максимальный параллелизм, разбивая задачу на достаточное количество подзадач для полной загрузки ForkJoinPool.commonPool(), который используется для всех параллельных вычислений. Обычно сначала выбирают одно из этих крайних значений, а затем измеряют производительность при промежуточных значениях, позволяющих найти компромисс между накладными расходами и пропускной способностью.
Свойства параллелизма массовых операций следуют из свойств ConcurrentHashMap: любой ненулевой результат, возвращаемый get(key) и связанными методами доступа, находится в отношении happens-before с соответствующей вставкой или обновлением. Результат любой массовой операции отражает совокупность этих отношений для отдельных элементов (но не обязательно является атомарным относительно карты в целом, если только достоверно не известно, что карта находится в состоянии покоя). И наоборот, поскольку ключи и значения в карте никогда не равны null, null служит надёжным атомарным признаком отсутствия результата в текущий момент. Для сохранения этого свойства null неявно используется в качестве базового значения для всех операций редукции, не возвращающих скалярный результат. Для вариантов с double, long и int базовое значение должно при объединении с любым другим значением возвращать это другое значение (формальнее, оно должно быть нейтральным элементом редукции). Большинство распространённых операций редукции обладает этими свойствами; например, вычисление суммы с базовым значением 0 или минимума с базовым значением MAX_VALUE.
Функции поиска и преобразования, передаваемые в качестве аргументов, также должны возвращать null, обозначая отсутствие результата (в этом случае он не используется). Для редукции с отображением это также позволяет преобразованиям выполнять роль фильтров: возвращать null (или, в случае специализаций для примитивных типов, нейтральное базовое значение), если элемент не следует включать в объединение. Перед использованием таких функций в операциях поиска или редукции можно самостоятельно создавать составные преобразования и фильтры, комбинируя их согласно правилу «null означает, что сейчас там ничего нет».
Методы, принимающие и/или возвращающие аргументы Entry, сохраняют связь между ключами и значениями. Они могут быть полезны, например, при поиске ключа с наибольшим значением. Обратите внимание, что обычные аргументы Entry можно передавать с помощью new
AbstractMap.SimpleEntry(k,v).
Массовые операции могут завершиться аварийно, выбросив исключение, возникшее при применении предоставленной функции. При обработке таких исключений учитывайте, что другие функции, выполняющиеся параллельно, также могли выбросить исключения или сделали бы это, если бы первое исключение не возникло.
Ускорение при использовании параллельных форм по сравнению с последовательными встречается часто, но не гарантируется. Параллельные операции с короткими функциями над небольшими картами могут выполняться медленнее последовательных, если затраты на распараллеливание вычислений превышают стоимость самих вычислений. Аналогично, распараллеливание может не обеспечить значительный фактический параллелизм, если все процессоры заняты выполнением других задач.
Все аргументы всех методов задач должны быть не равны null.
Этот класс входит в состав Java Collections Framework.
- Начиная с версии:
- 1.5
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static final class |
ConcurrentHashMap.KeySetView<K, |
Представление ConcurrentHashMap в виде Set ключей, в котором добавление элементов может быть включено путём сопоставления им общего значения. |
Вложенные классы/интерфейсы, объявленные в классе AbstractMap
AbstractMap.SimpleEntry<K, V>, AbstractMap.SimpleImmutableEntry<K, V>
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ConcurrentHashMap() |
Создаёт новую пустую карту с размером таблицы по умолчанию (16). |
ConcurrentHashMap |
Создаёт новую пустую карту с начальным размером таблицы, достаточным для размещения заданного количества элементов без необходимости динамического изменения размера. |
ConcurrentHashMap |
Создаёт новую пустую карту с начальным размером таблицы, определяемым заданным количеством элементов ( initialCapacity) и начальной плотностью таблицы (loadFactor). |
ConcurrentHashMap |
Создаёт новую пустую карту с начальным размером таблицы, определяемым заданным количеством элементов ( initialCapacity), начальной плотностью таблицы (loadFactor) и количеством одновременно обновляющих потоков (concurrencyLevel). |
ConcurrentHashMap |
Создаёт новую карту с теми же отображениями, что и заданная карта. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
clear() |
Удаляет все отображения из этой карты. |
V |
compute |
Пытается вычислить отображение для заданного ключа и его текущего отображаемого значения (или null, если текущего отображения нет). |
V |
computeIfAbsent |
Если заданный ключ ещё не связан со значением, пытается вычислить его с помощью заданной функции отображения и добавляет его в эту карту, если только null. |
V |
computeIfPresent |
Если для заданного ключа имеется значение, пытается вычислить новое отображение на основе ключа и его текущего отображаемого значения. |
boolean |
contains |
Проверяет, отображается ли какой-либо ключ в таблице в заданное значение. |
boolean |
containsKey |
Проверяет, является ли заданный объект ключом в этой таблице. |
boolean |
containsValue |
Возвращает true, если эта карта отображает один или несколько ключей в заданное значение. |
Enumeration |
elements() |
Возвращает перечисление значений в этой таблице. |
Set |
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 |
keys() |
Возвращает перечисление ключей в этой таблице. |
ConcurrentHashMap.KeySetView |
keySet() |
Возвращает представление содержащихся в этой карте ключей в виде Set. |
ConcurrentHashMap.KeySetView |
keySet |
Возвращает представление ключей этой карты в виде Set, используя заданное общее отображаемое значение для всех добавляемых элементов (то есть Collection.add(E) и Collection.addAll(Collection)). |
long |
mappingCount() |
Возвращает количество отображений. |
V |
merge |
Если заданный ключ ещё не связан с (ненулевым) значением, связывает его с заданным значением. |
static <K> ConcurrentHashMap.KeySetView |
newKeySet() |
Создаёт новый Set, основанный на ConcurrentHashMap и связывающий заданный тип с Boolean.TRUE. |
static <K> ConcurrentHashMap.KeySetView |
newKeySet |
Создаёт новый Set, основанный на ConcurrentHashMap и связывающий заданный тип с Boolean.TRUE. |
V |
put |
Сопоставляет заданный ключ с заданным значением в этой таблице. |
void |
putAll |
Копирует все отображения из заданной карты в эту карту. |
V |
putIfAbsent |
Если заданный ключ ещё не связан со значением, связывает его с заданным значением. |
<U> U |
reduce |
Возвращает результат объединения преобразованных заданной функцией всех пар (ключ, значение) с помощью заданной функции редукции или null, если элементов нет. |
Map.Entry |
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 |
values() |
Возвращает представление содержащихся в этой карте значений в виде Collection. |
Методы, объявленные в классе AbstractMap
clone, isEmpty, size
Методы, объявленные в интерфейсе 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.isEmpty
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)
remove
public V remove(Object key)
- Определено в:
-
removeв интерфейсеMap<K,V> - Переопределено:
-
removeв классеAbstractMap<K,V> - Параметры:
-
key— ключ, который нужно удалить - Возвращает:
- предыдущее значение, связанное с
key, илиnull, если дляkeyне существовало отображения - Исключения:
-
NullPointerException— если указанный ключ равен null
clear
keySet
public ConcurrentHashMap.KeySetView<K,V> keySet()
Set ключей, содержащихся в этой карте. Набор поддерживается картой, поэтому изменения карты отражаются в наборе, и наоборот. Набор поддерживает удаление элементов, которое удаляет соответствующее отображение из этой карты с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются. Итераторы и сплитераторы этого представления обладают слабой согласованностью.
Метод spliterator этого представления сообщает характеристики Spliterator.CONCURRENT, Spliterator.DISTINCT и Spliterator.NONNULL.
values
public Collection<V> values()
Collection значений, содержащихся в этой карте. Коллекция поддерживается картой, поэтому изменения карты отражаются в коллекции, и наоборот. Коллекция поддерживает удаление элементов, которое удаляет соответствующее отображение из этой карты с помощью операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются. Итераторы и сплитераторы этого представления обладают слабой согласованностью.
Метод spliterator этого представления сообщает характеристики Spliterator.CONCURRENT и Spliterator.NONNULL.
entrySet
public Set<Map.Entry<K,V>> entrySet()
Set отображений, содержащихся в этой карте. Набор поддерживается картой, поэтому изменения карты отражаются в наборе, и наоборот. Набор поддерживает удаление элементов, которое удаляет соответствующее отображение из карты с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Итераторы и сплитераторы этого представления обладают слабой согласованностью.
Метод spliterator этого представления сообщает характеристики Spliterator.CONCURRENT, Spliterator.DISTINCT и Spliterator.NONNULL.
hashCode
public int hashCode()
Map, то есть сумму значений key.hashCode() ^ value.hashCode() для каждой пары «ключ-значение» в карте.toString
public String toString()
{}»). Соседние отображения разделяются символами ", " (запятая и пробел). Каждое отображение «ключ-значение» представляется как ключ, за которым следует знак равенства («=»), а затем связанное с ним значение.- Переопределено:
-
toStringв классеAbstractMap<K,V> - Возвращает:
- строковое представление этой карты
equals
public boolean equals(Object o)
true, если переданный объект является картой с теми же отображениями, что и эта карта. Эта операция может дать вводящие в заблуждение результаты, если во время выполнения метода одна из карт одновременно изменяется.putIfAbsent
public V putIfAbsent(K key, V value)
map это эквивалентно следующему: if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key);, за исключением того, что действие выполняется атомарно.- Определено в:
-
putIfAbsentв интерфейсеConcurrentMap<K,V> - Определено в:
-
putIfAbsentв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым нужно связать указанное значение -
value— значение, которое нужно связать с указанным ключом - Возвращает:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не существовало отображения - Исключения:
-
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;
}, за исключением того, что действие выполняется атомарно.- Определено в:
-
removeв интерфейсеConcurrentMap<K,V> - Определено в:
-
removeв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым связано указанное значение -
value— значение, которое предположительно связано с указанным ключом - Возвращает:
-
true, если значение было удалено - Исключения:
-
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;
}, за исключением того, что действие выполняется атомарно.- Определено в:
-
replaceв интерфейсеConcurrentMap<K,V> - Определено в:
-
replaceв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым связано указанное значение -
oldValue— значение, которое предположительно связано с указанным ключом -
newValue— значение, которое нужно связать с указанным ключом - Возвращает:
-
true, если значение было заменено - Исключения:
-
NullPointerException— если любой из аргументов равен null
replace
public V replace(K key, V value)
map это эквивалентно следующему: if (map.containsKey(key))
return map.put(key, value);
else
return null;, за исключением того, что действие выполняется атомарно.- Определено в:
-
replaceв интерфейсеConcurrentMap<K,V> - Определено в:
-
replaceв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым связано указанное значение -
value— значение, которое нужно связать с указанным ключом - Возвращает:
- предыдущее значение, связанное с указанным ключом, или
null, если для ключа не существовало отображения - Исключения:
-
NullPointerException— если указанный ключ или значение равны null
getOrDefault
public V getOrDefault(Object key, V defaultValue)
- Определено в:
-
getOrDefaultв интерфейсеConcurrentMap<K,V> - Определено в:
-
getOrDefaultв интерфейсеMap<K,V> - Параметры:
-
key— ключ, связанное значение которого нужно вернуть -
defaultValue— значение, которое нужно вернуть, если в этой карте отсутствует отображение для указанного ключа - Возвращает:
- отображение для ключа, если оно существует; в противном случае — значение по умолчанию
- Исключения:
-
NullPointerException— если указанный ключ равен null
computeIfAbsent
public V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
null. Вызов метода целиком выполняется атомарно. Переданная функция вызывается ровно один раз за вызов этого метода, если ключ отсутствует, и не вызывается вовсе в противном случае. Некоторые операции обновления этой карты, выполняемые другими потоками, могут блокироваться на время вычисления, поэтому вычисление должно быть коротким и простым. Функция отображения не должна изменять эту карту во время вычисления.
- Определено в:
-
computeIfAbsentв интерфейсеConcurrentMap<K,V> - Определено в:
-
computeIfAbsentв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым нужно связать указанное значение -
mappingFunction— функция для вычисления значения - Возвращает:
- текущее значение (существующее или вычисленное), связанное с указанным ключом, или null, если вычисленное значение равно null
- Исключения:
-
NullPointerException— если указанный ключ или mappingFunction равны null -
IllegalStateException— если вычисление обнаружимо пытается выполнить рекурсивное обновление этой карты, которое иначе никогда бы не завершилось -
RuntimeException— или Error, если это делает mappingFunction; в этом случае отображение не устанавливается
computeIfPresent
public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Функция переназначения не должна изменять эту карту во время вычисления.
- Определено в:
-
computeIfPresentв интерфейсеConcurrentMap<K,V> - Определено в:
-
computeIfPresentв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым может быть связано значение -
remappingFunction— функция для вычисления значения - Возвращает:
- новое значение, связанное с указанным ключом, или null, если его нет
- Исключения:
-
NullPointerException— если указанный ключ или remappingFunction равны null -
IllegalStateException— если вычисление обнаружимо пытается выполнить рекурсивное обновление этой карты, которое иначе никогда бы не завершилось -
RuntimeException— или Error, если это делает remappingFunction; в этом случае отображение остается неизменным
compute
public V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
null, если текущего отображения нет). Вызов метода целиком выполняется атомарно. Переданная функция вызывается ровно один раз за вызов этого метода. Некоторые операции обновления этой карты, выполняемые другими потоками, могут блокироваться на время вычисления, поэтому вычисление должно быть коротким и простым. Функция переназначения не должна изменять эту карту во время вычисления.
- Определено в:
-
computeв интерфейсеConcurrentMap<K,V> - Определено в:
-
computeв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым нужно связать указанное значение -
remappingFunction— функция для вычисления значения - Возвращает:
- новое значение, связанное с указанным ключом, или null, если его нет
- Исключения:
-
NullPointerException— если указанный ключ или remappingFunction равны null -
IllegalStateException— если вычисление обнаружимо пытается выполнить рекурсивное обновление этой карты, которое иначе никогда бы не завершилось -
RuntimeException— или Error, если это делает remappingFunction; в этом случае отображение остается неизменным
merge
public V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
null. Вызов метода целиком выполняется атомарно. Некоторые операции обновления этой карты, выполняемые другими потоками, могут блокироваться на время вычисления, поэтому вычисление должно быть коротким и простым и не должно пытаться обновлять другие отображения этой карты.- Определено в:
-
mergeв интерфейсеConcurrentMap<K,V> - Определено в:
-
mergeв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым нужно связать указанное значение -
value— значение, используемое при отсутствии отображения -
remappingFunction— функция для повторного вычисления значения, если оно существует - Возвращает:
- новое значение, связанное с указанным ключом, или null, если его нет
- Исключения:
-
NullPointerException— если указанный ключ или remappingFunction равны null -
RuntimeException— или Error, если это делает remappingFunction; в этом случае отображение остается неизменным
contains
public boolean contains(Object value)
Обратите внимание, что этот метод функционально идентичен методу containsValue(Object) и существует исключительно для обеспечения полной совместимости с классом Hashtable, который поддерживал этот метод до появления Java Collections Framework.
- Параметры:
-
value— значение для поиска - Возвращает:
-
trueтогда и только тогда, когда какой-либо ключ соответствует аргументуvalueв этой таблице, согласно методуequals; в противном случае —false - Исключения:
-
NullPointerException— если указанное значение равно null
keys
public Enumeration<K> keys()
- Возвращает:
- перечисление ключей этой таблицы
- См. также:
elements
public Enumeration<V> elements()
- Возвращает:
- перечисление значений этой таблицы
- См. также:
mappingCount
public long mappingCount()
size(), поскольку ConcurrentHashMap может содержать больше отображений, чем можно представить типом int. Возвращаемое значение является оценочным; фактическое число может отличаться при наличии одновременных вставок или удалений.- Возвращает:
- число отображений
- Начиная с версии:
- 1.8
newKeySet
public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet()
Set, основанный на ConcurrentHashMap, сопоставляющей указанный тип с Boolean.TRUE.- Параметры типа:
K— тип элементов возвращаемого множества- Возвращает:
- новое множество
- Начиная с:
- 1.8
newKeySet
public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet(int initialCapacity)
Set, основанный на ConcurrentHashMap, сопоставляющей указанный тип с Boolean.TRUE.- Параметры типа:
K— тип элементов возвращаемого множества- Параметры:
-
initialCapacity— реализация выполняет внутреннее выделение памяти для размещения указанного количества элементов. - Возвращает:
- новое множество
- Выбрасывает:
-
IllegalArgumentException— если начальная емкость для элементов отрицательна - Начиная с:
- 1.8
keySet
public ConcurrentHashMap.KeySetView<K,V> keySet(V mappedValue)
Set, используя заданное общее значение для сопоставления при добавлении элементов (то есть Collection.add(E) и Collection.addAll(Collection)). Это, разумеется, уместно только в том случае, если для всех элементов, добавляемых через это представление, допустимо использовать одно и то же значение.- Параметры:
-
mappedValue— значение сопоставления, используемое при добавлении элементов - Возвращает:
- представление множества
- Выбрасывает:
-
NullPointerException— если mappedValue равен null
forEach
public void forEach(long parallelismThreshold, BiConsumer<? super K, ? super V> action)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
action— действие - Начиная с:
- 1.8
forEach
public <U> void forEach(long parallelismThreshold, BiFunction<? super K, ? super V, ? extends U> transformer, Consumer<? super U> action)
- Параметры типа:
U— тип возвращаемого значения преобразователя- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента или null, если преобразование отсутствует (в этом случае действие не выполняется) -
action— действие - Начиная с:
- 1.8
search
public <U> U search(long parallelismThreshold, BiFunction<? super K, ? super V, ? extends U> searchFunction)
- Параметры типа:
U— тип возвращаемого значения функции поиска- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
searchFunction— функция, возвращающая ненулевой результат в случае успеха и null в противном случае - Возвращает:
- ненулевой результат применения заданной функции поиска к каждой паре (ключ, значение) или null, если такого результата нет
- Начиная с:
- 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)
- Параметры типа:
U— тип возвращаемого значения преобразователя- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента или null, если преобразование отсутствует (в этом случае элемент не объединяется) -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех пар (ключ, значение)
- Начиная с:
- 1.8
reduceToDouble
public double reduceToDouble(long parallelismThreshold, ToDoubleBiFunction<? super K, ? super V> transformer, double basis, DoubleBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех пар (ключ, значение)
- Начиная с:
- 1.8
reduceToLong
public long reduceToLong(long parallelismThreshold, ToLongBiFunction<? super K, ? super V> transformer, long basis, LongBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех пар (ключ, значение)
- Начиная с:
- 1.8
reduceToInt
public int reduceToInt(long parallelismThreshold, ToIntBiFunction<? super K, ? super V> transformer, int basis, IntBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех пар (ключ, значение)
- Начиная с:
- 1.8
forEachKey
public void forEachKey(long parallelismThreshold, Consumer<? super K> action)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
action— действие - Начиная с:
- 1.8
forEachKey
public <U> void forEachKey(long parallelismThreshold, Function<? super K, ? extends U> transformer, Consumer<? super U> action)
- Параметры типа:
U— тип возвращаемого значения преобразователя- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента или null, если преобразование отсутствует (в этом случае действие не выполняется) -
action— действие - Начиная с:
- 1.8
searchKeys
public <U> U searchKeys(long parallelismThreshold, Function<? super K, ? extends U> searchFunction)
- Параметры типа:
U— тип возвращаемого значения функции поиска- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
searchFunction— функция, возвращающая ненулевой результат в случае успеха и null в противном случае - Возвращает:
- ненулевой результат применения заданной функции поиска к каждому ключу или null, если такого результата нет
- Начиная с:
- 1.8
reduceKeys
public K reduceKeys(long parallelismThreshold, BiFunction<? super K, ? super K, ? extends K> reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления всех ключей с помощью заданной функции редукции, объединяющей значения, или null, если ключей нет
- Начиная с:
- 1.8
reduceKeys
public <U> U reduceKeys(long parallelismThreshold, Function<? super K, ? extends U> transformer, BiFunction<? super U, ? super U, ? extends U> reducer)
- Параметры типа:
U— тип возвращаемого значения преобразователя- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента или null, если преобразование отсутствует (в этом случае элемент не объединяется) -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех ключей
- Начиная с:
- 1.8
reduceKeysToDouble
public double reduceKeysToDouble(long parallelismThreshold, ToDoubleFunction<? super K> transformer, double basis, DoubleBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех ключей
- Начиная с:
- 1.8
reduceKeysToLong
public long reduceKeysToLong(long parallelismThreshold, ToLongFunction<? super K> transformer, long basis, LongBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех ключей
- Начиная с:
- 1.8
reduceKeysToInt
public int reduceKeysToInt(long parallelismThreshold, ToIntFunction<? super K> transformer, int basis, IntBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех ключей
- Начиная с:
- 1.8
forEachValue
public void forEachValue(long parallelismThreshold, Consumer<? super V> action)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
action— действие - Начиная с:
- 1.8
forEachValue
public <U> void forEachValue(long parallelismThreshold, Function<? super V, ? extends U> transformer, Consumer<? super U> action)
- Параметры типа:
U— тип возвращаемого значения преобразователя- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента или null, если преобразование отсутствует (в этом случае действие не выполняется) -
action— действие - Начиная с:
- 1.8
searchValues
public <U> U searchValues(long parallelismThreshold, Function<? super V, ? extends U> searchFunction)
- Параметры типа:
U— тип возвращаемого значения функции поиска- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
searchFunction— функция, возвращающая ненулевой результат в случае успеха и null в противном случае - Возвращает:
- ненулевой результат применения заданной функции поиска к каждому значению или null, если такого результата нет
- Начиная с:
- 1.8
reduceValues
public V reduceValues(long parallelismThreshold, BiFunction<? super V, ? super V, ? extends V> reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления всех значений
- Начиная с:
- 1.8
reduceValues
public <U> U reduceValues(long parallelismThreshold, Function<? super V, ? extends U> transformer, BiFunction<? super U, ? super U, ? extends U> reducer)
- Параметры типа:
U— тип возвращаемого значения преобразователя- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента или null, если преобразование отсутствует (в этом случае элемент не объединяется) -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех значений
- Начиная с:
- 1.8
reduceValuesToDouble
public double reduceValuesToDouble(long parallelismThreshold, ToDoubleFunction<? super V> transformer, double basis, DoubleBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех значений
- Начиная с:
- 1.8
reduceValuesToLong
public long reduceValuesToLong(long parallelismThreshold, ToLongFunction<? super V> transformer, long basis, LongBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех значений
- Начиная с:
- 1.8
reduceValuesToInt
public int reduceValuesToInt(long parallelismThreshold, ToIntFunction<? super V> transformer, int basis, IntBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех значений
- Начиная с:
- 1.8
forEachEntry
public void forEachEntry(long parallelismThreshold, Consumer<? super Map.Entry<K,V>> action)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
action— действие - Начиная с:
- 1.8
forEachEntry
public <U> void forEachEntry(long parallelismThreshold, Function<Map.Entry<K,V>, ? extends U> transformer, Consumer<? super U> action)
- Параметры типа:
U— тип возвращаемого значения преобразователя- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента или null, если преобразование отсутствует (в этом случае действие не выполняется) -
action— действие - Начиная с:
- 1.8
searchEntries
public <U> U searchEntries(long parallelismThreshold, Function<Map.Entry<K,V>, ? extends U> searchFunction)
- Параметры типа:
U— тип возвращаемого значения функции поиска- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
searchFunction— функция, возвращающая ненулевой результат в случае успеха и null в противном случае - Возвращает:
- ненулевой результат применения заданной функции поиска к каждой записи или null, если такого результата нет
- Начиная с:
- 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)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления всех записей
- Начиная с:
- 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)
- Параметры типа:
U— тип возвращаемого значения преобразователя- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента или null, если преобразование отсутствует (в этом случае элемент не объединяется) -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех записей
- Начиная с:
- 1.8
reduceEntriesToDouble
public double reduceEntriesToDouble(long parallelismThreshold, ToDoubleFunction<Map.Entry<K,V>> transformer, double basis, DoubleBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех записей
- Начиная с:
- 1.8
reduceEntriesToLong
public long reduceEntriesToLong(long parallelismThreshold, ToLongFunction<Map.Entry<K,V>> transformer, long basis, LongBinaryOperator reducer)
- Параметры:
-
parallelismThreshold— (предполагаемое) количество элементов, необходимое для параллельного выполнения этой операции -
transformer— функция, возвращающая результат преобразования элемента -
basis— нейтральный элемент (начальное значение по умолчанию) для редукции -
reducer— коммутативная ассоциативная функция объединения - Возвращает:
- результат накопления заданных преобразований всех записей
- Начиная с:
- 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, 2025, 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/25/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html