Класс 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).
Массовые операции могут завершиться аварийно, выбросив исключение, возникшее при применении переданной функции. При обработке таких исключений следует учитывать, что другие функции, выполняющиеся одновременно, также могли выбросить исключения или выбросили бы их, если бы не возникло первое исключение.
Параллельные формы часто работают быстрее последовательных, но это не гарантируется. Параллельные операции с короткими функциями и небольшими картами могут выполняться медленнее последовательных, если затраты на распараллеливание вычислений превышают затраты на сами вычисления. Аналогично, распараллеливание может не обеспечить существенного уровня параллелизма, если все процессоры заняты выполнением других задач.
Все аргументы всех методов задач должны быть ненулевыми.
Этот класс входит в состав Java Collections Framework.
- Начиная с:
- 1.5
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static final class |
ConcurrentHashMap.KeySetView<K, |
Представление ConcurrentHashMap в виде Set ключей, в котором добавление элементов может быть разрешено посредством сопоставления с общим значением. |
Вложенные классы и интерфейсы, объявленные в классе AbstractMap
AbstractMap.SimpleEntry<K, V>, AbstractMap.SimpleImmutableEntry<K, V> | Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
AbstractMap.SimpleEntry<K, |
Запись, содержащая ключ и значение. |
static class |
AbstractMap.SimpleImmutableEntry<K, |
Немодифицируемая запись, содержащая ключ и значение. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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() для каждой пары «ключ — значение» в карте. |
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, если подходящих элементов нет. |
String |
toString() |
Возвращает строковое представление этой карты. |
Collection |
values() |
Возвращает представление значений, содержащихся в этой карте, в виде Collection. |
Методы, объявленные в классе AbstractMap
clone, isEmpty, size | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Возвращает поверхностную копию этого экземпляра AbstractMap: сами ключи и значения не клонируются. |
boolean |
isEmpty() |
Возвращает true, если эта карта не содержит отображений «ключ — значение». |
int |
size() |
Возвращает количество отображений «ключ — значение» в этой карте. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс этого Object во время выполнения. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе ConcurrentMap
forEach, replaceAll | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEach |
Выполняет заданное действие для каждой записи этой карты, пока не будут обработаны все записи или действие не вызовет исключение. |
default void |
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 не являются положительными
Подробное описание методов
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()
AbstractMap.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.