Spec-Zone.ru › OpenJDK 21

Класс ConcurrentHashMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.concurrent.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 с любым (не нулевым) извлечением для этого ключа, сообщая обновленное значение.) Для агрегатных операций, таких как 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 Framework коллекций.

Since:
1.5
See Also:
  • Сериализованная форма

Краткое описание вложенных классов

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

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

Modifier and Type Method Description
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)
Если указанный ключ еще не связан со значением (не равным 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, если такового нет.
int size()
Возвращает количество сопоставлений ключ-значение в этой карте.
String toString()
Возвращает строковое представление этой карты.
Collection<V> values()
Возвращает представление Collection значений, содержащихся в этой карте.

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

clone, isEmpty, size

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

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

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

forEach, replaceAll

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

ConcurrentHashMap

public ConcurrentHashMap()
Создаёт новую пустую карту с размерами таблицы по умолчанию (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 в интерфейсе ConcurrentMap<K,V>
Specified by:
computeIfAbsent в интерфейсе Map<K,V>
Parameters:
key - ключ, с которым нужно связать указанное значение
mappingFunction - функция для вычисления значения
Returns:
текущее (существующее или вычисленное) значение, связанное с указанным ключом, или null, если вычисленное значение равно null
Throws:
NullPointerException - если указанный ключ или mappingFunction равны null
RuntimeException - или ошибка, если mappingFunction делает это, в этом случае отображение не устанавливается

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

reduceKeysToInt

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

forEachValue

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

forEachValue

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

searchValues

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

reduceValues

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

reduceValues

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

reduceValuesToDouble

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

reduceValuesToLong

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

reduceValuesToInt

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

forEachEntry

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

forEachEntry

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

searchEntries

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

reduceEntries

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

reduceEntries

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

reduceEntriesToDouble

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

reduceEntriesToLong

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

reduceEntriesToInt

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

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

Spec-Zone.ru

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