Spec-Zone.ru › OpenJDK 24

Класс ConcurrentHashMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.concurrent.ConcurrentHashMap<K,V>
Тип параметров:
K — тип ключей, поддерживаемых этой картой
V — тип сопоставленных значений
Все реализованные интерфейсы:
Serializable, ConcurrentMap<K,V>, Map<K,V>
public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable
Хеш-таблица, поддерживающая полную одновременность извлечений и высокую ожидаемую одновременность обновлений. Этот класс подчиняется тому же функциональному спецификации, что и Hashtable, и включает версии методов, соответствующих каждому методу Hashtable. Однако, даже если все операции защищены от одновременного доступа, операции извлечения не подразумевают блокировку, и нет никакой поддержки блокировки всей таблицы таким образом, чтобы предотвратить весь доступ. Этот класс полностью совместим с Hashtable в программах, которые полагаются на его безопасность в отношении потоков, но не на детали его синхронизации.

Операции извлечения (включая get) обычно не блокируют, поэтому могут перекрываться операциями обновления (включая put и remove). Извлечения отражают результаты наиболее недавно завершенных операций обновления, выполняющихся в момент их начала. (Более формально, операция обновления для данного ключа имеет отношение happens-before с любым (непустым) извлечением для этого ключа, сообщающим обновленное значение.) Для агрегатных операций, таких как putAll и clear, одновременные извлечения могут отражать вставку или удаление только некоторых элементов. Аналогично, итераторы, сплиттеры и перечисления возвращают элементы, отражающие состояние хеш-таблицы в какой-то момент времени или после создания итератора/перечисления. Они не выбрасывают ConcurrentModificationException. Однако итераторы предназначены для использования только одним потоком за раз. Имейте в виду, что результаты методов агрегированного состояния, включая size, isEmpty и containsValue, обычно полезны только тогда, когда карта не подвергается одновременным обновлениям в других потоках. В противном случае результаты этих методов отражают транзиентные состояния, которые могут быть достаточны для мониторинга или оценки, но не для управления программой.

Таблица динамически расширяется, когда возникает слишком много коллизий (т. е. ключей, у которых есть различные хэш-коды, но которые попадают в один и тот же слот по модулю размера таблицы), с ожидаемым средним эффектом поддержания примерно двух бинов на отображение (соответствующего пороговому значению загрузки 0,75 для изменения размера). Может быть значительное отклонение от этого среднего значения по мере добавления и удаления отображений, но в целом это поддерживает общепринятый компромисс между временем и пространством для хеш-таблиц. Однако изменение размера этой или любой другой хеш-таблицы может быть относительно медленной операцией. При возможности, полезно предоставить оценку размера в качестве необязательного initialCapacity аргумента конструктора. Дополнительный необязательный loadFactor аргумент конструктора предоставляет еще один способ настройки начальной емкости таблицы, указав плотность таблицы, которая должна использоваться для расчета количества места, выделяемого для заданного количества элементов. Кроме того, для совместимости с предыдущими версиями этого класса, конструкторы могут необязательно указывать ожидаемый concurrencyLevel в качестве дополнительного подсказки для внутренней размерности. Обратите внимание, что использование многих ключей с точно такими же hashCode() — верный способ замедлить производительность любой хеш-таблицы. Для уменьшения влияния, когда ключи Comparable, этот класс может использовать порядок сравнения между ключами, чтобы помочь разбить ничьи.

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

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

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

Подобно Hashtable, но в отличие от HashMap, этот класс не разрешает null использовать в качестве ключа или значения.

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

  • forEach: Выполняет заданное действие над каждым элементом. Вариантная форма применяет заданное преобразование к каждому элементу перед выполнением действия.
  • search: Возвращает первое доступное ненулевое результат применения заданной функции к каждому элементу; пропуская дальнейшие поиски, когда результат найден.
  • reduce: Накапливает каждый элемент. Предоставленная функция редукции не может полагаться на порядок (более формально, она должна быть как ассоциативной, так и коммутативной). Существует пять вариантов:
    • Простые редукции. (Нет формы этого метода для аргументов функции (ключ, значение), так как нет соответствующего возвращаемого типа.)
    • Картированные редукции, которые накапливают результаты заданной функции, примененной к каждому элементу.
    • Редукции к скалярным значениям 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,V>
Представление ConcurrentHashMap как множества ключей, где добавление может быть опционально включено путём сопоставления с общим значением.

Вложенные классы/интерфейсы, объявленные в классе 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)
Создаёт новую пустую карту с начальным размером таблицы, основанным на заданном количестве элементов (initialCapacity), начальной плотности таблицы (loadFactor) и количестве одновременно обновляемых потоков (concurrencyLevel).
ConcurrentHashMap(Map<? extends K, ? extends V> m)
Создаёт новую карту с теми же отображениями, что и заданная карта.

Краткое описание методов

Модификатор и тип Метод Описание
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().
boolean isEmpty()
Возвращает true, если эта карта не содержит сопоставлений ключ-значение.
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)
Если указанный ключ еще не связан с (непустым) значением, связывает его с данным значением.
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, если такового нет.
int size()
Возвращает количество пар ключ-значение в этом отображении.
String toString()
Возвращает строковое представление этого отображения.
Collection<V> values()
Возвращает Collection представление значений, содержащихся в этом отображении.

Methods declared in class java.util.AbstractMap

clone, isEmpty, size

Methods declared in class java.lang.Object

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

Methods declared in interface java.util.concurrent.ConcurrentMap

forEach, replaceAll

Подробное описание конструкторов

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 не положительны

Подробное описание методов

size

public int size()
Возвращает количество пар ключ-значение в этом словаре. Если словарь содержит более чем Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.
Определено в:
size в интерфейсе Map<K,V>
Переопределяет:
size в классе AbstractMap<K,V>
Возвращает:
количество пар ключ-значение в этом словаре

isEmpty

public boolean isEmpty()
Возвращает true, если этот словарь не содержит пар ключ-значение.
Определено в:
isEmpty в интерфейсе Map<K,V>
Переопределяет:
isEmpty в классе AbstractMap<K,V>
Возвращает:
true, если этот словарь не содержит пар ключ-значение

get

public V get(Object key)
Возвращает значение, которому соответствует указанный ключ, или null, если этот словарь не содержит сопоставления для ключа.

Более формально, если этот словарь содержит сопоставление от ключа k к значению v, такое что key.equals(k), то этот метод возвращает v; в противном случае он возвращает null. (Может быть не более одного такого сопоставления.)

Определено в:
get в интерфейсе Map<K,V>
Переопределяет:
get в классе AbstractMap<K,V>
Параметры:
key - ключ, связанное значение которого требуется вернуть
Возвращает:
значение, которому соответствует указанный ключ, или null, если этот словарь не содержит сопоставления для ключа
Исключения:
NullPointerException - если указанный ключ равен null

containsKey

public boolean containsKey(Object key)
Проверяет, является ли указанный объект ключом в этой таблице.
Определено в:
containsKey в интерфейсе Map<K,V>
Переопределяет:
containsKey в классе AbstractMap<K,V>
Параметры:
key - возможный ключ
Возвращает:
true тогда и только тогда, когда указанный объект является ключом в этой таблице, как определено методом equals; false в противном случае
Исключения:
NullPointerException - если указанный ключ равен null

containsValue

public boolean containsValue(Object value)
Возвращает true, если этот словарь сопоставляет один или несколько ключей со значением. Примечание: для этого метода может потребоваться полное обход словаря, и он намного медленнее, чем метод containsKey.
Определено в:
containsValue в интерфейсе Map<K,V>
Переопределяет:
containsValue в классе AbstractMap<K,V>
Параметры:
value - значение, присутствие которого в этом словаре требуется проверить
Возвращает:
true, если этот словарь сопоставляет один или несколько ключей со значением
Исключения:
NullPointerException - если указанное значение равно null

put

public V put(K key, V value)
Сопоставляет указанный ключ со значением в этой таблице. Ни ключ, ни значение не могут быть null.

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

Определено в:
put в интерфейсе Map<K,V>
Переопределяет:
put в классе AbstractMap<K,V>
Параметры:
key - ключ, которому должно быть сопоставлено указанное значение
value - значение, которое должно быть сопоставлено с указанным ключом
Возвращает:
предыдущее значение, связанное с key, или null, если для key не было сопоставления
Исключения:
NullPointerException - если указанный ключ или значение равно null

putAll

public void putAll(Map<? extends K, ? extends V> m)
Копирует все сопоставления из указанного словаря в этот. Эти сопоставления заменяют любые сопоставления, которые этот словарь имел для любых ключей, присутствующих в указанном словаре.
Определено в:
putAll в интерфейсе Map<K,V>
Переопределяет:
putAll в классе AbstractMap<K,V>
Параметры:
m - сопоставления, которые необходимо сохранить в этом словаре

remove

public V remove(Object key)
Удаляет ключ (и соответствующее значение) из этого словаря. Этот метод ничего не делает, если ключ не находится в словаре.
Определено в:
remove в интерфейсе Map<K,V>
Переопределяет:
remove в классе AbstractMap<K,V>
Параметры:
key - ключ, который требуется удалить
Возвращает:
предыдущее значение, связанное с key, или null, если для key не было сопоставления
Исключения:
NullPointerException - если указанный ключ равен null

clear

public void clear()
Удаляет все сопоставления из этого словаря.
Определено в:
clear в интерфейсе Map<K,V>
Переопределяет:
clear в классе AbstractMap<K,V>

keySet

public ConcurrentHashMap.KeySetView<K,V> keySet()
Возвращает представление Set ключей, содержащихся в этом словаре. Множество поддерживается словарем, поэтому изменения в словаре отражаются в множестве, и наоборот. Множество поддерживает удаление элементов, которые удаляют соответствующее сопоставление из этого словаря, посредством операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Оно не поддерживает операции add или addAll.

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

Метод spliterator представления сообщает о Spliterator.CONCURRENT, Spliterator.DISTINCT и Spliterator.NONNULL.

Определено в:
keySet в интерфейсе Map<K,V>
Переопределяет:
keySet в классе AbstractMap<K,V>
Возвращает:
представление множества

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);
, за исключением того, что действие выполняется атомарно.
Specified by:
putIfAbsent в интерфейсе ConcurrentMap<K,V>
Specified by:
putIfAbsent в интерфейсе Map<K,V>
Parameters:
key - ключ, с которым должно быть связано указанное значение
value - значение, которое должно быть связано с указанным ключом
Returns:
предыдущее значение, связанное с указанным ключом, или null, если для ключа не было сопоставления
Throws:
NullPointerException - если указанный ключ или значение равно null

remove

public boolean remove(Object key, Object value)
Удаляет запись для ключа только в том случае, если она в настоящее время отображается для данного значения. Это эквивалентно для данного map:
 
 if (map.containsKey(key)
     && Objects.equals(map.get(key), value)) {
   map.remove(key);
   return true;
 } else {
   return false;
 }
, за исключением того, что действие выполняется атомарно.
Specified by:
remove в интерфейсе ConcurrentMap<K,V>
Specified by:
remove в интерфейсе Map<K,V>
Parameters:
key - ключ, с которым связано указанное значение
value - ожидаемое значение, связанное с указанным ключом
Returns:
true, если значение было удалено
Throws:
NullPointerException - если указанный ключ равен null

replace

public boolean replace(K key, V oldValue, V newValue)
Заменяет запись для ключа только в том случае, если она в настоящее время отображается для данного значения. Это эквивалентно для данного map:
 
 if (map.containsKey(key)
     && Objects.equals(map.get(key), oldValue)) {
   map.put(key, newValue);
   return true;
 } else {
   return false;
 }
, за исключением того, что действие выполняется атомарно.
Specified by:
replace в интерфейсе ConcurrentMap<K,V>
Specified by:
replace в интерфейсе Map<K,V>
Parameters:
key - ключ, с которым связано указанное значение
oldValue - ожидаемое значение, связанное с указанным ключом
newValue - значение, которое должно быть связано с указанным ключом
Returns:
true, если значение было заменено
Throws:
NullPointerException - если какой-либо из аргументов равен null

replace

public V replace(K key, V value)
Заменяет запись для ключа только в том случае, если она в настоящее время отображается для некоторого значения. Это эквивалентно для данного map:
 
 if (map.containsKey(key))
   return map.put(key, value);
 else
   return null;
, за исключением того, что действие выполняется атомарно.
Specified by:
replace в интерфейсе ConcurrentMap<K,V>
Specified by:
replace в интерфейсе Map<K,V>
Parameters:
key - ключ, с которым связано указанное значение
value - значение, которое должно быть связано с указанным ключом
Returns:
предыдущее значение, связанное с указанным ключом, или null, если для ключа не было сопоставления
Throws:
NullPointerException - если указанный ключ или значение равно null

getOrDefault

public V getOrDefault(Object key, V defaultValue)
Возвращает значение, которому сопоставлен указанный ключ, или заданное значение по умолчанию, если в этом отображении нет сопоставления для ключа.
Specified by:
getOrDefault в интерфейсе ConcurrentMap<K,V>
Specified by:
getOrDefault в интерфейсе Map<K,V>
Parameters:
key - ключ, связанное значение которого должно быть возвращено
defaultValue - значение, которое должно быть возвращено, если в этом отображении нет сопоставления для данного ключа
Returns:
сопоставление для ключа, если оно есть; в противном случае значение по умолчанию
Throws:
NullPointerException - если указанный ключ равен null

computeIfAbsent

public V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
Если заданный ключ ещё не связан со значением, пытается вычислить его значение с помощью заданной функции отображения и вводит его в эту карту, если null. Весь вызов метода выполняется атомарно. Поставленная функция вызывается ровно один раз на каждый вызов этого метода, если ключ отсутствует, в противном случае — нет. Некоторые попытки операций обновления этой карты другими потоками могут быть заблокированы во время вычисления, поэтому вычисление должно быть коротким и простым.

Функция отображения не должна изменять эту карту во время вычисления.

Specified by:
computeIfAbsent in interface ConcurrentMap<K,V>
Specified by:
computeIfAbsent in interface Map<K,V>
Parameters:
key - ключ, с которым должно быть связано указанное значение
mappingFunction - функция для вычисления значения
Returns:
текущее (существующее или вычисленное) значение, связанное с указанным ключом, или null, если вычисленное значение равно null
Throws:
NullPointerException - если указанный ключ или mappingFunction равны null
IllegalStateException - если вычисление обнаруживает рекурсивную попытку обновления этой карты, которая в противном случае никогда не завершится
RuntimeException - или ошибка, если функция отображения делает это, в этом случае отображение не устанавливается

computeIfPresent

public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Если значение для заданного ключа присутствует, пытается вычислить новое отображение, учитывая ключ и его текущее сопоставленное значение. Весь вызов метода выполняется атомарно. Поставленная функция вызывается ровно один раз на каждый вызов этого метода, если ключ присутствует, в противном случае — нет. Некоторые попытки операций обновления этой карты другими потоками могут быть заблокированы во время вычисления, поэтому вычисление должно быть коротким и простым.

Функция переназначения не должна изменять эту карту во время вычисления.

Specified by:
computeIfPresent in interface ConcurrentMap<K,V>
Specified by:
computeIfPresent in interface Map<K,V>
Parameters:
key - ключ, с которым может быть связано значение
remappingFunction - функция для вычисления значения
Returns:
новое значение, связанное с указанным ключом, или null, если нет
Throws:
NullPointerException - если указанный ключ или remappingFunction равны null
IllegalStateException - если вычисление обнаруживает рекурсивную попытку обновления этой карты, которая в противном случае никогда не завершится
RuntimeException - или ошибка, если функция переназначения делает это, в этом случае отображение остается неизменным

compute

public V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Пытается вычислить отображение для заданного ключа и его текущего сопоставленного значения (или null, если нет текущего отображения). Весь вызов метода выполняется атомарно. Поставленная функция вызывается ровно один раз на каждый вызов этого метода. Некоторые попытки операций обновления этой карты другими потоками могут быть заблокированы во время вычисления, поэтому вычисление должно быть коротким и простым.

Функция переназначения не должна изменять эту карту во время вычисления.

Specified by:
compute in interface ConcurrentMap<K,V>
Specified by:
compute in interface Map<K,V>
Parameters:
key - ключ, с которым должно быть связано указанное значение
remappingFunction - функция для вычисления значения
Returns:
новое значение, связанное с указанным ключом, или null, если нет
Throws:
NullPointerException - если указанный ключ или remappingFunction равны null
IllegalStateException - если вычисление обнаруживает рекурсивную попытку обновления этой карты, которая в противном случае никогда не завершится
RuntimeException - или ошибка, если функция переназначения делает это, в этом случае отображение остается неизменным

merge

public V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
Если заданный ключ ещё не связан с (не-null) значением, связывает его с данным значением. В противном случае заменяет значение результатом заданной функции переназначения или удаляет, если null. Весь вызов метода выполняется атомарно. Некоторые попытки операций обновления этой карты другими потоками могут быть заблокированы во время вычисления, поэтому вычисление должно быть коротким и простым, и не должно пытаться обновить какие-либо другие отображения этой карты.
Specified by:
merge in interface ConcurrentMap<K,V>
Specified by:
merge in interface Map<K,V>
Parameters:
key - ключ, с которым должно быть связано указанное значение
value - значение для использования, если отсутствует
remappingFunction - функция для повторного вычисления значения, если оно присутствует
Returns:
новое значение, связанное с указанным ключом, или null, если нет
Throws:
NullPointerException - если заданный ключ или функция переназначения равны null
RuntimeException - или ошибка, если функция переназначения делает это, в этом случае отображение остается неизменным

contains

public boolean contains(Object value)
Проверяет, отображается ли какой-то ключ в указанное значение в этой таблице.

Обратите внимание, что этот метод функционально идентичен методу containsValue(Object), и существует только для обеспечения полной совместимости с классом Hashtable, который поддерживал этот метод до введения Java Collections Framework.

Parameters:
value - значение для поиска
Returns:
true тогда и только тогда, когда какой-то ключ отображается на аргумент value в этой таблице, как определено методом equals; false в противном случае
Throws:
NullPointerException - если указанное значение равно null

keys

public Enumeration<K> keys()
Возвращает перечисление ключей в этой таблице.
Returns:
перечисление ключей в этой таблице
See Also:
  • keySet()

elements

public Enumeration<V> elements()
Возвращает перечисление значений в этой таблице.
Returns:
перечисление значений в этой таблице
See Also:
  • values()

mappingCount

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

newKeySet

public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet()
Создает новый Set, поддерживаемый ConcurrentHashMap, от заданного типа до Boolean.TRUE.
Type Parameters:
K - тип элементов возвращаемого множества
Returns:
новое множество
Since:
1.8

newKeySet

public static <K> ConcurrentHashMap.KeySetView<K,Boolean> newKeySet(int initialCapacity)
Создает новый Set, поддерживаемый ConcurrentHashMap, от заданного типа к Boolean.TRUE.
Type Parameters:
K - тип элементов возвращаемого множества
Parameters:
initialCapacity - Реализация выполняет внутреннее масштабирование для размещения этого количества элементов.
Returns:
новое множество
Throws:
IllegalArgumentException - если начальная емкость элементов отрицательна
Since:
1.8

keySet

public ConcurrentHashMap.KeySetView<K,V> keySet(V mappedValue)
Возвращает представление Set ключей в этой карте, используя заданное общее сопоставленное значение для любых добавлений (т.е., Collection.add(E) и Collection.addAll(Collection)). Это, конечно, подходит только в том случае, если допустимо использовать одно и то же значение для всех добавлений из этого представления.
Parameters:
mappedValue - сопоставленное значение для использования при любых добавлениях
Returns:
представление множества
Throws:
NullPointerException - если mappedValue равно null

forEach

public void forEach(long parallelismThreshold, BiConsumer<? super K, ? super V> action)
Выполняет заданное действие для каждой пары (ключ, значение).
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимых для выполнения этой операции параллельно
action - действие
Since:
1.8

forEach

public <U> void forEach(long parallelismThreshold, BiFunction<? super K, ? super V, ? extends U> transformer, Consumer<? super U> action)
Выполняет заданное действие для каждого не-null преобразования каждого (ключ, значение).
Type Parameters:
U - тип возвращаемого значения трансформатора
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае действие не применяется)
action - действие
Since:
1.8

search

public <U> U search(long parallelismThreshold, BiFunction<? super K, ? super V, ? extends U> searchFunction)
Возвращает не-null результат применения заданной функции поиска к каждому (ключ, значение) или null, если такового нет. При успехе дальнейшая обработка элементов подавляется, и результаты любых других параллельных вызовов функции поиска игнорируются.
Type Parameters:
U - тип возвращаемого значения функции поиска
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
searchFunction - функция, возвращающая не-null результат при успехе, иначе null
Returns:
не-null результат применения заданной функции поиска к каждому (ключ, значение) или null, если такового нет
Since:
1.8

reduce

public <U> U reduce(long parallelismThreshold, BiFunction<? super K, ? super V, ? extends U> transformer, BiFunction<? super U, ? super U, ? extends U> reducer)
Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений или null, если такового нет.
Type Parameters:
U - тип возвращаемого значения трансформатора
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае оно не комбинируется)
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех пар (ключ, значение)
Since:
1.8

reduceToDouble

public double reduceToDouble(long parallelismThreshold, ToDoubleBiFunction<? super K, ? super V> transformer, double basis, DoubleBinaryOperator reducer)
Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса как идентичного значения.
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех пар (ключ, значение)
Since:
1.8

reduceToLong

public long reduceToLong(long parallelismThreshold, ToLongBiFunction<? super K, ? super V> transformer, long basis, LongBinaryOperator reducer)
Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса как идентичного значения.
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех пар (ключ, значение)
Since:
1.8

reduceToInt

public int reduceToInt(long parallelismThreshold, ToIntBiFunction<? super K, ? super V> transformer, int basis, IntBinaryOperator reducer)
Возвращает результат накопления заданного преобразования всех пар (ключ, значение) с использованием заданного редуктора для объединения значений и заданного базиса как идентичного значения.
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех пар (ключ, значение)
Since:
1.8

forEachKey

public void forEachKey(long parallelismThreshold, Consumer<? super K> action)
Выполняет заданное действие для каждого ключа.
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
action - действие
Since:
1.8

forEachKey

public <U> void forEachKey(long parallelismThreshold, Function<? super K, ? extends U> transformer, Consumer<? super U> action)
Выполняет заданное действие для каждого не-null преобразования каждого ключа.
Type Parameters:
U - тип возвращаемого значения трансформатора
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае действие не применяется)
action - действие
Since:
1.8

searchKeys

public <U> U searchKeys(long parallelismThreshold, Function<? super K, ? extends U> searchFunction)
Возвращает не-null результат применения заданной функции поиска к каждому ключу, или null, если такового нет. При успехе дальнейшая обработка элементов подавляется, и результаты любых других параллельных вызовов функции поиска игнорируются.
Type Parameters:
U - тип возвращаемого значения функции поиска
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
searchFunction - функция, возвращающая не-null результат при успехе, иначе null
Returns:
не-null результат применения заданной функции поиска к каждому ключу, или null, если такового нет
Since:
1.8

reduceKeys

public K reduceKeys(long parallelismThreshold, BiFunction<? super K, ? super K, ? extends K> reducer)
Возвращает результат накопления всех ключей с использованием заданного редуктора для объединения значений или null, если такового нет.
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления всех ключей с использованием заданного редуктора для объединения значений или null, если такового нет
Since:
1.8

reduceKeys

public <U> U reduceKeys(long parallelismThreshold, Function<? super K, ? extends U> transformer, BiFunction<? super U, ? super U, ? extends U> reducer)
Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений или null, если такового нет.
Type Parameters:
U - тип возвращаемого значения трансформатора
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае оно не комбинируется)
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех ключей
Since:
1.8

reduceKeysToDouble

public double reduceKeysToDouble(long parallelismThreshold, ToDoubleFunction<? super K> transformer, double basis, DoubleBinaryOperator reducer)
Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений и заданного базиса как идентичного значения.
Parameters:
parallelismThreshold - (приблизительное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Returns:
результат накопления заданного преобразования всех ключей
Since:
1.8

reduceKeysToLong

public long reduceKeysToLong(long parallelismThreshold, ToLongFunction<? super K> transformer, long basis, LongBinaryOperator reducer)
Возвращает результат накопления заданного преобразования всех ключей с использованием заданного редуктора для объединения значений и заданного основания в качестве идентичного значения.
Параметры:
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)
Возвращает не нулевое значение, полученное применением заданной функции поиска к каждому значению, или null, если такового нет. При успехе дальнейшая обработка элементов подавляется, и результаты любых других параллельных вызовов функции поиска игнорируются.
Типы параметров:
U - тип возвращаемого значения функции поиска
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
searchFunction - функция, возвращающая не нулевое значение при успехе, иначе 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)
Выполняет заданное действие для каждого не нулевого преобразования каждой записи.
Типы параметров:
U - тип возвращаемого значения преобразователя
Параметры:
parallelismThreshold - (оцененное) количество элементов, необходимое для выполнения этой операции в параллельном режиме
transformer - функция, возвращающая преобразование для элемента, или null, если преобразования нет (в этом случае действие не применяется)
action - действие
С:
1.8

searchEntries

public <U> U searchEntries(long parallelismThreshold, Function<Map.Entry<K,V>, ? extends U> searchFunction)
Возвращает не нулевое значение, полученное применением заданной функции поиска к каждой записи, или null, если такового нет. При успехе дальнейшая обработка элементов подавляется, и результаты любых других параллельных вызовов функции поиска игнорируются.
Типы параметров:
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)
Возвращает результат накопления всех записей с использованием заданного редуктора для объединения значений или 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)
Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.
Параметры:
parallelismThreshold - (оценочное) количество элементов, необходимое для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Возвращает:
результат накопления заданного преобразования всех записей
С:
1.8

reduceEntriesToLong

public long reduceEntriesToLong(long parallelismThreshold, ToLongFunction<Map.Entry<K,V>> transformer, long basis, LongBinaryOperator reducer)
Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.
Параметры:
parallelismThreshold - (оценочное) количество элементов, необходимое для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Возвращает:
результат накопления заданного преобразования всех записей
С:
1.8

reduceEntriesToInt

public int reduceEntriesToInt(long parallelismThreshold, ToIntFunction<Map.Entry<K,V>> transformer, int basis, IntBinaryOperator reducer)
Возвращает результат накопления заданного преобразования всех записей с использованием заданного редуктора для объединения значений и заданного базиса в качестве идентичного значения.
Параметры:
parallelismThreshold - (оценочное) количество элементов, необходимое для выполнения этой операции параллельно
transformer - функция, возвращающая преобразование для элемента
basis - идентичность (начальное значение по умолчанию) для редукции
reducer - коммутативная ассоциативная функция объединения
Возвращает:
результат накопления заданного преобразования всех записей
С:
1.8

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API