Класс ConcurrentHashMap<K,​V>

Type Parameters:
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, этот класс может использовать порядок сравнения среди ключей для устранения конфликтов.

Проекция Set ConcurrentHashMap может быть создана (используя newKeySet() или newKeySet(int)), или просмотрена (используя keySet(Object) когда интересны только ключи, и сопоставленные значения (возможно, временно) не используются или все принимают одно и то же значение отображения.

ConcurrentHashMap может использоваться как масштабируемая карта частоты (форма гистограммы или мультимножества) путём использования значений LongAdder и инициализации через computeIfAbsent. Например, чтобы добавить счётчик в ConcurrentHashMap<String,LongAdder> freqs, можно использовать freqs.computeIfAbsent(key, k -> new LongAdder()).increment();

Этот класс и его представления и итераторы реализуют все необязательные методы интерфейсов Map и Iterator.

Как и Hashtable, но в отличие от HashMap, этот класс не позволяет null использовать в качестве ключа или значения.

ConcurrentHashMap поддерживает набор последовательных и параллельных операций массовой обработки, которые, в отличие от большинства методов Stream, предназначены для безопасного и часто разумного применения даже с картами, которые обновляются другими потоками; например, при вычислении сводки снимков значений в общей регистрации. Существует три типа операций, каждый из которых имеет четыре формы, принимающие функции с ключами, значениями, записями и (ключ, значение) парами в качестве аргументов и/или возвращаемых значений. Поскольку элементы ConcurrentHashMap не упорядочены каким-либо определённым образом и могут обрабатываться в разных порядках в разных параллельных выполнениях, корректность предоставленных функций не должна зависеть от какого-либо порядка или от каких-либо других объектов или значений, которые могут временно изменяться во время выполнения вычислений; и за исключением действий forEach, по идее они должны быть без побочных эффектов. Операции массовой обработки над объектами Map.Entry не поддерживают метод setValue.

  • forEach: Выполняет заданное действие над каждым элементом. Вариант формы применяет заданное преобразование к каждому элементу перед выполнением действия.
  • search: Возвращает первый доступный не-null результат применения заданной функции к каждому элементу; пропуская дальнейший поиск, когда результат найден.
  • reduce: Накапливает каждый элемент. Предоставленная функция сокращения не может полагаться на порядок (более формально, она должна быть как ассоциативной, так и коммутативной). Существует пять вариантов:
    • Простые сокращения. (Нет формы этого метода для аргументов функций (ключ, значение), так как нет соответствующего возвращаемого типа.)
    • Преобразованные сокращения, которые накапливают результаты заданной функции, применённой к каждому элементу.
    • Сокращения до скалярных double, long и int, используя заданное базовое значение.

Эти операции массовой обработки принимают аргумент parallelismThreshold. Методы выполняются последовательно, если текущий размер карты оценивается как меньший, чем заданный порог. Использование значения Long.MAX_VALUE подавляет всю параллельность. Использование значения 1 приводит к максимальной параллельности путём разбиения на достаточное количество подзадач для полного использования ForkJoinPool.commonPool(), который используется для всех параллельных вычислений. Обычно вы сначала выбираете одно из этих крайних значений, а затем измеряете производительность, используя промежуточные значения, которые уравновешивают накладные расходы и пропускную способность.

Свойства одновременности операций массовой обработки следуют из свойств ConcurrentHashMap: Любой не-null результат, возвращаемый из 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 class  ConcurrentHashMap.KeySetView<K,​V>

Вид ConcurrentHashMap как Set ключей, при добавлении которых можно необязательно сопоставить общее значение.

Вложенные классы/интерфейсы, объявленные в классе java.util.AbstractMap

AbstractMap.SimpleEntry<K,​V>, AbstractMap.SimpleImmutableEntry<K,​V>

Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.Map

Map.Entry<K,​V>

Конструкторы

Конструктор Описание
ConcurrentHashMap()

Создает новую пустую карту с начальным размером таблицы по умолчанию (16).

ConcurrentHashMap​(int initialCapacity)

Создает новую пустую карту с начальным размером таблицы, достаточным для размещения указанного количества элементов без необходимости динамического изменения размера.

ConcurrentHashMap​(int initialCapacity, float loadFactor)

Создает новую пустую карту с начальным размером таблицы, основанным на заданном количестве элементов (initialCapacity) и плотности начальной таблицы (loadFactor).

ConcurrentHashMap​(int initialCapacity, float loadFactor, int concurrencyLevel)

Создает новую карту с такими же отображениями, что и у заданной карты.

Методы

Модификатор и тип Метод Описание
void clear()

Удаляет все сопоставления из этого отображения.

V compute​(K key, BiFunction<? super K,​? super V,​? extends V> remappingFunction)

Попытка вычислить сопоставление для указанного ключа и его текущего сопоставленного значения (или null если нет текущего сопоставления).

V computeIfAbsent​(K key, Function<? super K,​? extends V> mappingFunction)

Если указанный ключ еще не связан со значением, попытка вычислить его значение с помощью заданной функции отображения и внести его в это отображение, если null.

V computeIfPresent​(K key, BiFunction<? super K,​? super V,​? extends V> remappingFunction)

Если значение для указанного ключа присутствует, попытка вычислить новое сопоставление, учитывая ключ и его текущее сопоставленное значение.

boolean contains​(Object value)

Проверяет, отображается ли какой-либо ключ в указанное значение в этой таблице.

boolean containsKey​(Object key)

Проверяет, является ли указанный объект ключом в этой таблице.

boolean containsValue​(Object value)

Возвращает true если это отображение отображает один или несколько ключей на указанное значение.

Enumeration<V> elements()

Возвращает перечисление значений в этой таблице.

Set<Map.Entry<K,​V>> entrySet()

Возвращает представление Set сопоставлений, содержащихся в этом отображении.

boolean equals​(Object o)

Сравнивает указанный объект с этим отображением на равенство.

void forEach​(long parallelismThreshold, BiConsumer<? super K,​? super V> action)

Выполняет заданное действие для каждой пары (ключ, значение).

<U> void forEach​(long parallelismThreshold, BiFunction<? super K,​? super V,​? extends U> transformer, Consumer<? super U> action)

Выполняет заданное действие для каждого не нулевого преобразования каждой пары (ключ, значение).

void forEachEntry​(long parallelismThreshold, Consumer<? super Map.Entry<K,​V>> action)

Выполняет заданное действие для каждой записи.

<U> void forEachEntry​(long parallelismThreshold, Function<Map.Entry<K,​V>,​? extends U> transformer, Consumer<? super U> action)

Выполняет заданное действие для каждого не нулевого преобразования каждой записи.

void forEachKey​(long parallelismThreshold, Consumer<? super K> action)

Выполняет заданное действие для каждого ключа.

<U> void forEachKey​(long parallelismThreshold, Function<? super K,​? extends U> transformer, Consumer<? super U> action)

Выполняет заданное действие для каждого не нулевого преобразования каждого ключа.

void forEachValue​(long parallelismThreshold, Consumer<? super V> action)

Выполняет заданное действие для каждого значения.

<U> void forEachValue​(long parallelismThreshold, Function<? super V,​? extends U> transformer, Consumer<? super U> action)

Выполняет заданное действие для каждого не нулевого преобразования каждого значения.

V get​(Object key)

Возвращает значение, которому сопоставлен указанный ключ, или null если это отображение не содержит сопоставления для ключа.

V getOrDefault​(Object key, V defaultValue)

Возвращает значение, которому сопоставлен указанный ключ, или заданное значение по умолчанию, если это отображение не содержит сопоставления для ключа.

int hashCode()

Возвращает значение хэш-кода для этого Map, т.е. сумму, для каждой пары ключ-значение в отображении, key.hashCode() ^ value.hashCode().

Enumeration<K> keys()

Возвращает перечисление ключей в этой таблице.

ConcurrentHashMap.KeySetView<K,​V> keySet()

Возвращает представление Set ключей, содержащихся в этом отображении.

ConcurrentHashMap.KeySetView<K,​V> keySet​(V mappedValue)

Возвращает представление Set ключей в этом отображении, используя заданное общее сопоставленное значение для любых добавлений (т.е., Collection.add(E) и Collection.addAll(Collection)).

long mappingCount()

Возвращает количество сопоставлений.

V merge​(K key, V value, BiFunction<? super V,​? super V,​? extends V> remappingFunction)

Если указанный ключ еще не связан со значением (не равным null), связывает его с заданным значением.

static <K> ConcurrentHashMap.KeySetView<K,​Boolean> newKeySet()

Создает новое Set, поддерживаемое ConcurrentHashMap, от заданного типа к Boolean.TRUE.

static <K> ConcurrentHashMap.KeySetView<K,​Boolean> newKeySet​(int initialCapacity)

Создает новое Set, поддерживаемое ConcurrentHashMap, от заданного типа к Boolean.TRUE.

V put​(K key, V value)

Сопоставляет указанный ключ со значением в этой таблице.

void putAll​(Map<? extends K,​? extends V> m)

Копирует все сопоставления из указанного отображения в это.

V putIfAbsent​(K key, V value)

Если указанный ключ еще не связан со значением, связывает его с заданным значением.

<U> U reduce​(long parallelismThreshold, BiFunction<? super K,​? super V,​? extends U> transformer, BiFunction<? super U,​? super U,​? extends U> reducer)

Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с помощью заданного редуктора для объединения значений, или null, если нет ни одного.

Map.Entry<K,​V> reduceEntries​(long parallelismThreshold, BiFunction<Map.Entry<K,​V>,​Map.Entry<K,​V>,​? extends Map.Entry<K,​V>> reducer)

Возвращает результат накопления всех записей с использованием заданного редуктора для объединения значений, или null, если нет ни одного.

<U> U reduceEntries​(long parallelismThreshold, Function<Map.Entry<K,​V>,​? extends U> transformer, BiFunction<? super U,​? super U,​? extends U> reducer)

Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений, или null, если нет ни одного.

double reduceEntriesToDouble​(long parallelismThreshold, ToDoubleFunction<Map.Entry<K,​V>> transformer, double basis, DoubleBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

int reduceEntriesToInt​(long parallelismThreshold, ToIntFunction<Map.Entry<K,​V>> transformer, int basis, IntBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

long reduceEntriesToLong​(long parallelismThreshold, ToLongFunction<Map.Entry<K,​V>> transformer, long basis, LongBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

K reduceKeys​(long parallelismThreshold, BiFunction<? super K,​? super K,​? extends K> reducer)

Возвращает результат накопления всех ключей с использованием заданного редуктора для объединения значений, или null, если нет ни одного.

<U> U reduceKeys​(long parallelismThreshold, Function<? super K,​? extends U> transformer, BiFunction<? super U,​? super U,​? extends U> reducer)

Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений, или null, если нет ни одного.

double reduceKeysToDouble​(long parallelismThreshold, ToDoubleFunction<? super K> transformer, double basis, DoubleBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

int reduceKeysToInt​(long parallelismThreshold, ToIntFunction<? super K> transformer, int basis, IntBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

long reduceKeysToLong​(long parallelismThreshold, ToLongFunction<? super K> transformer, long basis, LongBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

double reduceToDouble​(long parallelismThreshold, ToDoubleBiFunction<? super K,​? super V> transformer, double basis, DoubleBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

int reduceToInt​(long parallelismThreshold, ToIntBiFunction<? super K,​? super V> transformer, int basis, IntBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

long reduceToLong​(long parallelismThreshold, ToLongBiFunction<? super K,​? super V> transformer, long basis, LongBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

V reduceValues​(long parallelismThreshold, BiFunction<? super V,​? super V,​? extends V> reducer)

Возвращает результат накопления всех значений с использованием заданного редуктора для объединения значений, или null, если нет ни одного.

<U> U reduceValues​(long parallelismThreshold, Function<? super V,​? extends U> transformer, BiFunction<? super U,​? super U,​? extends U> reducer)

Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для объединения значений, или null, если нет ни одного.

double reduceValuesToDouble​(long parallelismThreshold, ToDoubleFunction<? super V> transformer, double basis, DoubleBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

int reduceValuesToInt​(long parallelismThreshold, ToIntFunction<? super V> transformer, int basis, IntBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

long reduceValuesToLong​(long parallelismThreshold, ToLongFunction<? super V> transformer, long basis, LongBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.

V remove​(Object key)

Удаляет ключ (и соответствующее значение) из этой карты.

boolean remove​(Object key, Object value)

Удаляет запись для ключа только в том случае, если он в данный момент сопоставлен заданному значению.

V replace​(K key, V value)

Заменяет запись для ключа только в том случае, если он в данный момент сопоставлен какому-либо значению.

boolean replace​(K key, V oldValue, V newValue)

Заменяет запись для ключа только в том случае, если он в данный момент сопоставлен заданному значению.

<U> U search​(long parallelismThreshold, BiFunction<? super K,​? super V,​? extends U> searchFunction)

Возвращает результат применения заданной функции поиска к каждой паре (ключ, значение) или null, если таковой отсутствует.

<U> U searchEntries​(long parallelismThreshold, Function<Map.Entry<K,​V>,​? extends U> searchFunction)

Возвращает результат применения заданной функции поиска к каждой записи или null, если таковой отсутствует.

<U> U searchKeys​(long parallelismThreshold, Function<? super K,​? extends U> searchFunction)

Возвращает результат применения заданной функции поиска к каждому ключу или null, если таковой отсутствует.

<U> U searchValues​(long parallelismThreshold, Function<? super V,​? extends U> searchFunction)

Возвращает результат применения заданной функции поиска к каждому значению или null, если таковой отсутствует.

String toString()

Возвращает строковое представление этой карты.

Collection<V> values()

Возвращает представление Collection значений, содержащихся в этой карте.

Методы, объявленные в классе java.util.AbstractMap

clone, isEmpty, size

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе java.util.concurrent.ConcurrentMap

forEach, replaceAll

Методы, объявленные в интерфейсе java.util.Map

isEmpty, size

Конструкторы

ConcurrentHashMap

public ConcurrentHashMap()

Создаёт новую пустую карту с размером таблицы по умолчанию (16).

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. (Может быть не более одного такого сопоставления.)

Specified by:
get в интерфейсе Map<K,​V>
Overrides:
get в классе AbstractMap<K,​V>
Parameters:
key - ключ, связанное значение которого должно быть возвращено
Returns:
значение, которому сопоставлен указанный ключ, или null если в этой карте нет сопоставления для ключа
Throws:
NullPointerException - если указанный ключ равен null

containsKey

public boolean containsKey(Object key)

Проверяет, является ли указанный объект ключом в этой таблице.

Specified by:
containsKey в интерфейсе Map<K,​V>
Overrides:
containsKey в классе AbstractMap<K,​V>
Parameters:
key - возможный ключ
Returns:
true тогда и только тогда, когда указанный объект является ключом в этой таблице, как определяется методом equals; false в противном случае
Throws:
NullPointerException - если указанный ключ равен null

containsValue

public boolean containsValue(Object value)

Возвращает true если эта карта отображает один или несколько ключей на указанное значение. Примечание: этот метод может потребовать полного обхода карты и значительно медленнее, чем метод containsKey.

Specified by:
containsValue в интерфейсе Map<K,​V>
Overrides:
containsValue в классе AbstractMap<K,​V>
Parameters:
value - значение, присутствие которого в этой карте должно быть проверено
Returns:
true если эта карта отображает один или несколько ключей на указанное значение
Throws:
NullPointerException - если указанное значение равно null

put

public V put(K key,
             V value)

Сопоставляет указанный ключ со значением в этой таблице. Ни ключ, ни значение не могут быть null.

Значение можно получить, вызвав метод get с ключом, равным исходному.

Specified by:
put в интерфейсе Map<K,​V>
Overrides:
put в классе AbstractMap<K,​V>
Parameters:
key - ключ, с которым должно быть связано указанное значение
value - значение, которое должно быть связано с указанным ключом
Returns:
предыдущее значение, связанное с key, или null если для key не было сопоставления
Throws:
NullPointerException - если указанный ключ или значение равно null

putAll

public void putAll(Map<? extends K,​? extends V> m)

Копирует все сопоставления из указанной карты в эту. Эти сопоставления заменяют любые сопоставления, которые у этой карты были для любых ключей, присутствующих в указанной карте.

Specified by:
putAll в интерфейсе Map<K,​V>
Overrides:
putAll в классе AbstractMap<K,​V>
Parameters:
m - сопоставления, которые должны быть сохранены в этой карте

remove

public V remove(Object key)

Удаляет ключ (и соответствующее значение) из этой карты. Этот метод ничего не делает, если ключ не содержится в карте.

Specified by:
remove в интерфейсе Map<K,​V>
Overrides:
remove в классе AbstractMap<K,​V>
Parameters:
key - ключ, который нужно удалить
Returns:
предыдущее значение, связанное с key, или null если для key не было сопоставления
Throws:
NullPointerException - если указанный ключ равен null

clear

public void clear()

Удаляет все сопоставления из этой карты.

Specified by:
clear в интерфейсе Map<K,​V>
Overrides:
clear в классе AbstractMap<K,​V>

keySet

public ConcurrentHashMap.KeySetView<K,V> keySet()

Возвращает вид Set ключей, содержащихся в этой карте. Множество поддерживается картой, поэтому изменения в карте отражаются в множестве, и наоборот. Множество поддерживает удаление элементов, которое удаляет соответствующее сопоставление из этой карты, посредством операций Iterator.remove, Set.remove, removeAll, retainAll, и clear. Оно не поддерживает операции add или addAll.

Итераторы и разделители представлений являются слабо согласованными.

Вид spliterator сообщает о Spliterator.CONCURRENT, Spliterator.DISTINCT и Spliterator.NONNULL.

Specified by:
keySet в интерфейсе Map<K,​V>
Overrides:
keySet в классе AbstractMap<K,​V>
Returns:
представление множества

values

public Collection<V> values()

Возвращает вид Collection значений, содержащихся в этой карте. Коллекция поддерживается картой, поэтому изменения в карте отражаются в коллекции, и наоборот. Коллекция поддерживает удаление элементов, которое удаляет соответствующее сопоставление из этой карты, посредством операций Iterator.remove, Collection.remove, removeAll, retainAll, и clear. Она не поддерживает операции add или addAll.

Итераторы и разделители представления являются слабо согласованными.

Вид spliterator сообщает о Spliterator.CONCURRENT и Spliterator.NONNULL.

Specified by:
values в интерфейсе Map<K,​V>
Overrides:
values в классе AbstractMap<K,​V>
Returns:
представление коллекции

entrySet

public Set<Map.Entry<K,V>> entrySet()

Возвращает вид Set сопоставлений, содержащихся в этой карте. Множество поддерживается картой, поэтому изменения в карте отражаются в множестве, и наоборот. Множество поддерживает удаление элементов, которое удаляет соответствующее сопоставление из карты, посредством операций Iterator.remove, Set.remove, removeAll, retainAll, и clear.

Итераторы и разделители представления являются слабо согласованными.

Вид spliterator сообщает о Spliterator.CONCURRENT, Spliterator.DISTINCT и Spliterator.NONNULL.

Specified by:
entrySet в интерфейсе Map<K,​V>
Returns:
представление множества

hashCode

public int hashCode()

Возвращает значение хэш-кода для этой Map, т. е. сумму, для каждой пары ключ-значение в карте, key.hashCode() ^ value.hashCode().

Specified by:
hashCode в интерфейсе Map<K,​V>
Overrides:
hashCode в классе AbstractMap<K,​V>
Returns:
значение хэш-кода для этой карты
See Also:
Map.Entry.hashCode(), Object.equals(Object), Set.equals(Object)

toString

public String toString()

Возвращает строковое представление этой карты. Строковое представление состоит из списка сопоставлений ключ-значение (в произвольном порядке) в фигурных скобках ("{}"). Соседние сопоставления разделены символами ", " (запятая и пробел). Каждое сопоставление ключ-значение отображается как ключ, за которым следует знак равенства ("="), за которым следует связанное значение.

Overrides:
toString в классе AbstractMap<K,​V>
Returns:
строковое представление этой карты

equals

public boolean equals(Object o)

Сравнивает указанный объект с этой картой на предмет равенства. Возвращает true если данный объект является картой с теми же сопоставлениями, что и эта карта. Эта операция может возвращать вводящие в заблуждение результаты, если обе карты одновременно изменяются во время выполнения этого метода.

Specified by:
equals в интерфейсе Map<K,​V>
Overrides:
equals в классе AbstractMap<K,​V>
Parameters:
o - объект, который должен быть сравнен на предмет равенства с этой картой
Returns:
true если указанный объект равен этой карте
See Also:
Object.hashCode(), HashMap

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 - или Ошибка, если функция отображения делает это, в этом случае отображение не устанавливается

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 - или Ошибка, если 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 - или Ошибка, если remappingFunction делает это, в этом случае отображение не изменяется

merge

public V merge(K key,
               V value,
               BiFunction<? super V,​? super V,​? extends V> remappingFunction)

Если указанный ключ еще не связан с (не null) значением, связывает его с заданным значением. В противном случае, заменяет значение результатами заданной функции пересчета, или удаляет, если null. Весь вызов метода выполняется атомарно. Некоторые попытки обновлений в этой карте другими потоками могут быть заблокированы во время вычислений, поэтому вычисление должно быть коротким и простым, и не должно пытаться обновить другие сопоставления этой карты.

Определено в:
merge в интерфейсе ConcurrentMap<K,​V>
Определено в:
merge в интерфейсе Map<K,​V>
Параметры:
key - ключ, с которым должно быть связано указанное значение
value - значение, используемое при отсутствии
remappingFunction - функция для пересчета значения, если оно присутствует
Возвращает:
новое значение, связанное с указанным ключом, или null, если нет
Выбрасывает:
NullPointerException - если указанный ключ или remappingFunction равны null
RuntimeException - или Ошибка, если 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()

Возвращает перечисление ключей в этой таблице.

Возвращает:
перечисление ключей в этой таблице
См. также:
keySet()

elements

public Enumeration<V> elements()

Возвращает перечисление значений в этой таблице.

Возвращает:
перечисление значений в этой таблице
См. также:
values()

mappingCount

public long mappingCount()

Возвращает количество сопоставлений. Этот метод следует использовать вместо Map.size(), так как ConcurrentHashMap может содержать больше сопоставлений, чем может быть представлено как целое число. Возвращаемое значение является оценкой; фактическое количество может отличаться, если есть одновременные вставки или удаления.

Возвращает:
количество сопоставлений
С момента:
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)

Выполняет заданное действие для каждого не-null преобразования каждой пары (ключ, значение).

Тип параметров:
U - тип возвращаемого значения преобразователя
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимое для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае действие не применяется)
action - действие
С момента:
1.8

search

public <U> U search(long parallelismThreshold,
                    BiFunction<? super K,​? super V,​? extends U> searchFunction)

Возвращает не-null результат применения заданной функции поиска к каждой паре (ключ, значение) или null, если такового нет. При успехе дальнейшая обработка элементов подавляется, и результаты любых других параллельных вызовов функции поиска игнорируются.

Тип параметров:
U - тип возвращаемого значения функции поиска
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимое для выполнения этой операции параллельно
searchFunction - функция, возвращающая не-null результат при успехе, иначе null
Возвращает:
не-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)

Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений или null, если такового нет.

Тип параметров:
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)

Выполняет заданное действие для каждого не-null преобразования каждого ключа.

Тип параметров:
U - тип возвращаемого значения преобразователя
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимое для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае действие не применяется)
action - действие
С момента:
1.8

searchKeys

public <U> U searchKeys(long parallelismThreshold,
                        Function<? super K,​? extends U> searchFunction)

Возвращает не-null результат применения заданной функции поиска к каждому ключу или null, если такового нет. При успехе дальнейшая обработка элементов подавляется, и результаты любых других параллельных вызовов функции поиска игнорируются.

Тип параметров:
U - тип возвращаемого значения функции поиска
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимое для выполнения этой операции параллельно
searchFunction - функция, возвращающая не-null результат при успехе, иначе null
Возвращает:
не-null результат применения заданной функции поиска к каждому ключу или null, если такового нет
С момента:
1.8

reduceKeys

public K reduceKeys(long parallelismThreshold,
                    BiFunction<? super K,​? super K,​? extends K> reducer)

Возвращает результат накопления всех ключей с использованием заданного редуктора для объединения значений или null, если такового нет.

Параметры:
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)

Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений или null, если такового нет.

Тип параметров:
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)

Выполняет заданное действие для каждого не-null преобразования каждого значения.

Параметры типа:
U - тип возвращаемого значения преобразователя
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимых для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае действие не применяется)
action - действие
С:
1.8

searchValues

public <U> U searchValues(long parallelismThreshold,
                          Function<? super V,​? extends U> searchFunction)

Возвращает не-null результат применения заданной функции поиска к каждому значению или null, если такового нет. При успехе дальнейшая обработка элементов подавляется, и результаты любых других параллельных вызовов функции поиска игнорируются.

Параметры типа:
U - тип возвращаемого значения функции поиска
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимых для выполнения этой операции параллельно
searchFunction - функция, возвращающая не-null результат при успехе, иначе null
Возвращает:
не-null результат применения заданной функции поиска к каждому значению или null, если такового нет
С:
1.8

reduceValues

public V reduceValues(long parallelismThreshold,
                      BiFunction<? super V,​? super V,​? extends V> reducer)

Возвращает результат накопления всех значений с использованием заданного редуктора для комбинирования значений или null, если значений нет.

Параметры:
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)

Возвращает результат накопления заданного преобразования всех значений с использованием заданного редуктора для комбинирования значений или null, если значений нет.

Параметры типа:
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)

Выполняет заданное действие для каждого не-null преобразования каждой записи.

Параметры типа:
U - тип возвращаемого значения преобразователя
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимых для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае действие не применяется)
action - действие
С:
1.8

searchEntries

public <U> U searchEntries(long parallelismThreshold,
                           Function<Map.Entry<K,​V>,​? extends U> searchFunction)

Возвращает не-null результат применения заданной функции поиска к каждой записи или null, если такового нет. При успехе дальнейшая обработка элементов подавляется, и результаты любых других параллельных вызовов функции поиска игнорируются.

Параметры типа:
U - тип возвращаемого значения функции поиска
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимых для выполнения этой операции параллельно
searchFunction - функция, возвращающая не-null результат при успехе, иначе null
Возвращает:
не-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)

Возвращает результат накопления всех записей с использованием заданного редуктора для комбинирования значений или null, если записей нет.

Параметры:
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)

Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для комбинирования значений или null, если записей нет.

Параметры типа:
U - тип возвращаемого значения преобразователя
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимых для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае оно не комбинируется)
reducer - коммутативная ассоциативная функция комбинирования
Возвращает:
результат накопления заданного преобразования всех записей
С:
1.8

reduceEntriesToDouble

public double reduceEntriesToDouble(long parallelismThreshold,
                                    ToDoubleFunction<Map.Entry<K,​V>> transformer,
                                    double basis,
                                    DoubleBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех элементов, используя заданный редуктор для объединения значений и заданное основание в качестве идентичного значения.

Parameters:
parallelismThreshold - (оценочное) количество элементов, необходимое для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех элементов
Since:
1.8

reduceEntriesToLong

public long reduceEntriesToLong(long parallelismThreshold,
                                ToLongFunction<Map.Entry<K,​V>> transformer,
                                long basis,
                                LongBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех элементов, используя заданный редуктор для объединения значений и заданное основание в качестве идентичного значения.

Parameters:
parallelismThreshold - (оценочное) количество элементов, необходимое для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех элементов
Since:
1.8

reduceEntriesToInt

public int reduceEntriesToInt(long parallelismThreshold,
                              ToIntFunction<Map.Entry<K,​V>> transformer,
                              int basis,
                              IntBinaryOperator reducer)

Возвращает результат накопления заданного преобразования всех элементов, используя заданный редуктор для объединения значений и заданное основание в качестве идентичного значения.

Parameters:
parallelismThreshold - (оценочное) количество элементов, необходимое для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех элементов
Since:
1.8

© 1993, 2020, 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/11/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html

Spec-Zone .ru
спецификации, руководства, описания, API