Spec-Zone.ru › OpenJDK 25

Class ConcurrentSkipListMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.concurrent.ConcurrentSkipListMap<K,V>
Параметры типа:
K — тип ключей, хранящихся в этой карте
V — тип отображаемых значений
Все реализуемые интерфейсы:
Serializable, Cloneable, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, Map<K,V>, NavigableMap<K,V>, SequencedMap<K,V>, SortedMap<K,V>
public class ConcurrentSkipListMap<K,V> extends AbstractMap<K,V> implements ConcurrentNavigableMap<K,V>, Cloneable, Serializable
Масштабируемая реализация конкурентной ConcurrentNavigableMap. Карта сортируется в соответствии с естественным порядком ключей или с помощью Comparator, заданного при создании карты; выбор зависит от используемого конструктора.

Этот класс реализует конкурентный вариант списков с пропусками, обеспечивающий ожидаемую среднюю временную сложность log(n) для операций containsKey, get, put и remove, а также их вариантов. Операции вставки, удаления, обновления и доступа безопасно выполняются одновременно несколькими потоками.

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

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

Все пары Map.Entry, возвращаемые методами этого класса и его представлений, представляют собой снимки отображений на момент их создания. Они не поддерживают метод Entry.setValue. (Однако обратите внимание, что изменить отображения в связанной карте можно с помощью put, putIfAbsent или replace — в зависимости от того, какой именно эффект вам нужен.)

Обратите внимание, что для массовых операций putAll, equals, toArray, containsValue и clear не гарантируется атомарное выполнение. Например, итератор, работающий одновременно с операцией putAll, может увидеть только некоторые из добавленных элементов.

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

Этот класс входит в состав Java Collections Framework.

С версии:
1.6
См. также:
  • Сериализованная форма

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

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

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

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

Map.Entry<K,V>

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

Конструктор Описание
ConcurrentSkipListMap()
Создает новую пустую карту, отсортированную в соответствии с естественным порядком ключей.
ConcurrentSkipListMap(Comparator<? super K> comparator)
Создает новую пустую карту, отсортированную в соответствии с указанным компаратором.
ConcurrentSkipListMap(Map<? extends K, ? extends V> m)
Создает новую карту, содержащую те же отображения, что и заданная карта, и отсортированную в соответствии с естественным порядком ключей.
ConcurrentSkipListMap(SortedMap<K, ? extends V> m)
Создает новую карту, содержащую те же отображения и использующую тот же порядок, что и заданная отсортированная карта.

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

Модификатор и тип Метод Описание
Map.Entry<K,V> ceilingEntry(K key)
Возвращает отображение ключ-значение, связанное с наименьшим ключом, большим или равным заданному ключу, или null, если такой записи нет.
K ceilingKey(K key)
Возвращает наименьший ключ, больший или равный заданному ключу, или null, если такого ключа нет.
void clear()
Удаляет все отображения из этой карты.
ConcurrentSkipListMap<K,V> clone()
Возвращает поверхностную копию этого экземпляра ConcurrentSkipListMap.
Comparator<? super K> comparator()
Возвращает компаратор, используемый для упорядочения ключей в этой карте, или null, если в карте используется естественный порядок ключей.
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 containsKey(Object key)
Возвращает true, если эта карта содержит отображение для указанного ключа.
boolean containsValue(Object value)
Возвращает true, если эта карта отображает один или несколько ключей в указанное значение.
NavigableSet<K> descendingKeySet()
Возвращает представление NavigableSet, содержащего ключи этой карты, в обратном порядке.
ConcurrentNavigableMap<K,V> descendingMap()
Возвращает представление отображений этой карты в обратном порядке.
Set<Map.Entry<K,V>> entrySet()
Возвращает представление Set, содержащего отображения этой карты.
boolean equals(Object o)
Сравнивает указанный объект с этой картой на равенство.
Map.Entry<K,V> firstEntry()
Возвращает отображение ключ-значение, связанное с наименьшим ключом в этой карте, или null, если карта пуста.
K firstKey()
Возвращает первый (наименьший) ключ, находящийся в этой карте в данный момент.
Map.Entry<K,V> floorEntry(K key)
Возвращает отображение ключ-значение, связанное с наибольшим ключом, меньшим или равным заданному ключу, или null, если такого ключа нет.
K floorKey(K key)
Возвращает наибольший ключ, меньший или равный заданному ключу, или null, если такого ключа нет.
V get(Object key)
Возвращает значение, которому соответствует указанный ключ, или null, если в этой карте нет отображения для данного ключа.
V getOrDefault(Object key, V defaultValue)
Возвращает значение, которому соответствует указанный ключ, или заданное значение defaultValue, если в этой карте нет отображения для данного ключа.
ConcurrentNavigableMap<K,V> headMap(K toKey)
Возвращает представление части этой карты, ключи которой строго меньше toKey.
ConcurrentNavigableMap<K,V> headMap(K toKey, boolean inclusive)
Возвращает представление части этой карты, ключи которой меньше toKey (или равны ему, если inclusive равно true).
Map.Entry<K,V> higherEntry(K key)
Возвращает отображение ключ-значение, связанное с наименьшим ключом, строго большим заданного ключа, или null, если такого ключа нет.
K higherKey(K key)
Возвращает наименьший ключ, строго больший заданного ключа, или null, если такого ключа нет.
boolean isEmpty()
Возвращает true, если эта карта не содержит отображений ключ-значение.
NavigableSet<K> keySet()
Возвращает представление NavigableSet, содержащего ключи этой карты.
Map.Entry<K,V> lastEntry()
Возвращает отображение ключ-значение, связанное с наибольшим ключом в этой карте, или null, если карта пуста.
K lastKey()
Возвращает последний (наибольший) ключ, находящийся в этой карте в данный момент.
Map.Entry<K,V> lowerEntry(K key)
Возвращает отображение ключ-значение, связанное с наибольшим ключом, строго меньшим заданного ключа, или null, если такого ключа нет.
K lowerKey(K key)
Возвращает наибольший ключ, строго меньший заданного ключа, или null, если такого ключа нет.
V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
Если указанный ключ еще не связан со значением, связывает его с заданным значением.
NavigableSet<K> navigableKeySet()
Возвращает представление NavigableSet, содержащего ключи этой карты.
Map.Entry<K,V> pollFirstEntry()
Удаляет и возвращает отображение ключ-значение, связанное с наименьшим ключом в этой карте, или null, если карта пуста.
Map.Entry<K,V> pollLastEntry()
Удаляет и возвращает отображение ключ-значение, связанное с наибольшим ключом в этой карте, или null, если карта пуста.
V put(K key, V value)
Связывает указанное значение с указанным ключом в этой карте.
V putFirst(K k, V v)
Выбрасывает UnsupportedOperationException.
V putIfAbsent(K key, V value)
Если указанный ключ еще не связан со значением, связывает его с заданным значением.
V putLast(K k, V v)
Выбрасывает UnsupportedOperationException.
V remove(Object key)
Удаляет отображение для указанного ключа из этой карты, если оно существует.
boolean remove(Object key, Object value)
Удаляет запись для ключа, только если в данный момент ему соответствует заданное значение.
V replace(K key, V value)
Заменяет запись для ключа, только если в данный момент ему соответствует какое-либо значение.
boolean replace(K key, V oldValue, V newValue)
Заменяет запись для ключа, только если в данный момент ему соответствует заданное значение.
int size()
Возвращает количество отображений ключ-значение в этой карте.
ConcurrentNavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey до toKey.
ConcurrentNavigableMap<K,V> subMap(K fromKey, K toKey)
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey включительно до toKey исключительно.
ConcurrentNavigableMap<K,V> tailMap(K fromKey)
Возвращает представление части этой карты, ключи которой больше или равны fromKey.
ConcurrentNavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
Возвращает представление части этой карты, ключи которой больше fromKey (или равны ему, если inclusive равно true).
Collection<V> values()
Возвращает представление Collection, содержащего значения этой карты.

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

hashCode, isEmpty, putAll, size, toString

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

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

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

forEach, replaceAll

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

hashCode, putAll

Методы, объявленные в интерфейсе NavigableMap

reversed

Методы, объявленные в интерфейсе SequencedMap

sequencedEntrySet, sequencedKeySet, sequencedValues

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

ConcurrentSkipListMap

public ConcurrentSkipListMap()
Создает новую пустую карту, отсортированную в соответствии с естественным порядком ключей.

ConcurrentSkipListMap

public ConcurrentSkipListMap(Comparator<? super K> comparator)
Создает новую пустую карту, отсортированную в соответствии с указанным компаратором.
Параметры:
comparator — компаратор, который будет использоваться для упорядочивания этой карты. Если null, будет использоваться естественный порядок ключей.

ConcurrentSkipListMap

public ConcurrentSkipListMap(Map<? extends K, ? extends V> m)
Создает новую карту, содержащую те же отображения, что и заданная карта, отсортированную в соответствии с естественным порядком ключей.
Параметры:
m — карта, отображения из которой следует поместить в эту карту
Исключения:
ClassCastException — если ключи в m не являются Comparable или не могут сравниваться друг с другом
NullPointerException — если указанная карта или любой из ее ключей либо значений равен null

ConcurrentSkipListMap

public ConcurrentSkipListMap(SortedMap<K, ? extends V> m)
Создает новую карту, содержащую те же отображения и использующую тот же порядок, что и указанная отсортированная карта.
Параметры:
m — отсортированная карта, отображения из которой следует поместить в эту карту, а компаратор — использовать для сортировки этой карты
Исключения:
NullPointerException — если указанная отсортированная карта или любой из ее ключей либо значений равен null

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

clone

public ConcurrentSkipListMap<K,V> clone()
Возвращает поверхностную копию этого экземпляра ConcurrentSkipListMap. (Сами ключи и значения не клонируются.)
Переопределяет:
clone в классе AbstractMap<K,V>
Возвращает:
поверхностную копию этой карты
См. также:
  • Cloneable

containsKey

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

get

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

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

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

getOrDefault

public V getOrDefault(Object key, V defaultValue)
Возвращает значение, которому соответствует указанный ключ, или заданное значение defaultValue, если в этой карте нет отображения для ключа.
Определен в:
getOrDefault в интерфейсе ConcurrentMap<K,V>
Определен в:
getOrDefault в интерфейсе Map<K,V>
Параметры:
key — ключ
defaultValue — значение, возвращаемое, если в этой карте нет отображения для указанного ключа
Возвращает:
отображение для ключа, если оно имеется; в противном случае — defaultValue
Исключения:
NullPointerException — если указанный ключ равен null
Начиная с:
1.8

put

public V put(K key, V value)
Связывает указанное значение с указанным ключом в этой карте. Если в карте уже было отображение для ключа, старое значение заменяется.
Определен в:
put в интерфейсе Map<K,V>
Переопределяет:
put в классе AbstractMap<K,V>
Параметры:
key — ключ, с которым связывается указанное значение
value — значение, связываемое с указанным ключом
Возвращает:
предыдущее значение, связанное с указанным ключом, или null, если для ключа не было отображения
Исключения:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в карте
NullPointerException — если указанный ключ или значение равны null

remove

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

containsValue

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

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, если эта карта не содержит отображений «ключ—значение»

clear

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

computeIfAbsent

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

computeIfPresent

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

compute

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

merge

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

keySet

public NavigableSet<K> keySet()
Возвращает представление ключей, содержащихся в этой карте, в виде NavigableSet.

Итератор набора возвращает ключи в порядке возрастания. Сплитератор набора дополнительно сообщает характеристики Spliterator.CONCURRENT, Spliterator.NONNULL, Spliterator.SORTED и Spliterator.ORDERED; порядок обхода соответствует возрастанию ключей.

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

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

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

Этот метод эквивалентен методу navigableKeySet.

Определен в:
keySet в интерфейсе ConcurrentNavigableMap<K,V>
Определен в:
keySet в интерфейсе Map<K,V>
Определен в:
keySet в интерфейсе SortedMap<K,V>
Переопределяет:
keySet в классе AbstractMap<K,V>
Возвращает:
представление ключей этой карты в виде навигационного набора

navigableKeySet

public NavigableSet<K> navigableKeySet()
Описание скопировано из интерфейса: ConcurrentNavigableMap
Возвращает представление ключей, содержащихся в этой карте, в виде NavigableSet. Итератор набора возвращает ключи в порядке возрастания. Набор связан с картой, поэтому изменения карты отражаются в наборе, и наоборот. Набор поддерживает удаление элементов, которое удаляет соответствующее отображение из карты, с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются.

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

Определен в:
navigableKeySet в интерфейсе ConcurrentNavigableMap<K,V>
Определен в:
navigableKeySet в интерфейсе NavigableMap<K,V>
Возвращает:
представление ключей этой карты в виде навигационного набора

values

public Collection<V> values()
Возвращает представление значений, содержащихся в этой карте, в виде Collection.

Итератор коллекции возвращает значения в порядке возрастания соответствующих ключей. Сплитератор коллекции дополнительно сообщает характеристики Spliterator.CONCURRENT, Spliterator.NONNULL и Spliterator.ORDERED; порядок обхода соответствует возрастанию соответствующих ключей.

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

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

Определен в:
values в интерфейсе Map<K,V>
Определен в:
values в интерфейсе SortedMap<K,V>
Переопределяет:
values в классе AbstractMap<K,V>
Возвращает:
представление значений этой карты в виде коллекции

entrySet

public Set<Map.Entry<K,V>> entrySet()
Возвращает представление отображений, содержащихся в этой карте, в виде Set.

Итератор набора возвращает записи в порядке возрастания ключей. Сплитератор набора дополнительно сообщает характеристики Spliterator.CONCURRENT, Spliterator.NONNULL, Spliterator.SORTED и Spliterator.ORDERED; порядок обхода соответствует возрастанию ключей.

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

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

Элементы Map.Entry, перебираемые с помощью iterator или spliterator, не поддерживают операцию setValue.

Определен в:
entrySet в интерфейсе Map<K,V>
Определен в:
entrySet в интерфейсе SortedMap<K,V>
Возвращает:
представление отображений, содержащихся в этой карте, в виде набора, отсортированного по возрастанию ключей

descendingMap

public ConcurrentNavigableMap<K,V> descendingMap()
Описание скопировано из интерфейса: ConcurrentNavigableMap
Возвращает представление отображений, содержащихся в этой карте, в обратном порядке. Карта с обратным порядком связана с этой картой, поэтому изменения карты отражаются в карте с обратным порядком, и наоборот.

Порядок возвращаемой карты эквивалентен порядку, заданному Collections.reverseOrder(comparator()). Выражение m.descendingMap().descendingMap() возвращает представление m, по существу эквивалентное m.

Определен в:
descendingMap в интерфейсе ConcurrentNavigableMap<K,V>
Определен в:
descendingMap в интерфейсе NavigableMap<K,V>
Возвращает:
представление этой карты в обратном порядке

descendingKeySet

public NavigableSet<K> descendingKeySet()
Описание скопировано из интерфейса: ConcurrentNavigableMap
Возвращает представление ключей, содержащихся в этой карте, в обратном порядке в виде NavigableSet. Итератор набора возвращает ключи в порядке убывания. Набор связан с картой, поэтому изменения карты отражаются в наборе, и наоборот. Набор поддерживает удаление элементов, которое удаляет соответствующее отображение из карты, с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются.

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

Определен в:
descendingKeySet в интерфейсе ConcurrentNavigableMap<K,V>
Определен в:
descendingKeySet в интерфейсе NavigableMap<K,V>
Возвращает:
представление ключей этой карты в виде навигационного набора в обратном порядке

equals

public boolean equals(Object o)
Сравнивает указанный объект с этой картой на равенство. Возвращает true, если переданный объект также является картой и обе карты содержат одинаковые отображения. Формально, две карты m1 и m2 содержат одинаковые отображения, если m1.entrySet().equals(m2.entrySet()). Эта операция может вернуть неверный результат, если во время ее выполнения любая из карт одновременно изменяется.
Определен в:
equals в интерфейсе Map<K,V>
Переопределяет:
equals в классе AbstractMap<K,V>
Параметры:
o — объект, сравниваемый на равенство с этой картой
Возвращает:
true, если указанный объект равен этой карте
См. также:
  • Object.hashCode()
  • HashMap

putIfAbsent

public V putIfAbsent(K key, V value)
Если для указанного ключа еще не задано значение, связывает его с заданным значением. Для этого map эквивалентно:
if (!map.containsKey(key))
  return map.put(key, value);
else
  return map.get(key);
, за исключением того, что действие выполняется атомарно.
Определен в:
putIfAbsent в интерфейсе ConcurrentMap<K,V>
Определен в:
putIfAbsent в интерфейсе Map<K,V>
Параметры:
key — ключ, с которым связывается указанное значение
value — значение, связываемое с указанным ключом
Возвращает:
предыдущее значение, связанное с указанным ключом, или null, если для ключа не было отображения
Исключения:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в карте
NullPointerException — если указанный ключ или значение равны null

remove

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

replace

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

replace

public V replace(K key, V value)
Заменяет запись для ключа, только если в данный момент ему соответствует какое-либо значение. Для этого map эквивалентно:
if (map.containsKey(key))
  return map.put(key, value);
else
  return null;
, за исключением того, что действие выполняется атомарно.
Определен в:
replace в интерфейсе ConcurrentMap<K,V>
Определен в:
replace в интерфейсе Map<K,V>
Параметры:
key — ключ, с которым связано указанное значение
value — значение, связываемое с указанным ключом
Возвращает:
предыдущее значение, связанное с указанным ключом, или null, если для ключа не было отображения
Исключения:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в карте
NullPointerException — если указанный ключ или значение равны null

comparator

public Comparator<? super K> comparator()
Описание скопировано из интерфейса: SortedMap
Возвращает компаратор, используемый для упорядочения ключей в этой карте, или null, если в этой карте используется естественный порядок ключей.
Указано в:
comparator в интерфейсе SortedMap<K,V>
Возвращает:
компаратор, используемый для упорядочения ключей в этой карте, или null, если в этой карте используется естественный порядок ключей

firstKey

public K firstKey()
Описание скопировано из интерфейса: SortedMap
Возвращает первый (наименьший) ключ, находящийся в данный момент в этой карте.
Указано в:
firstKey в интерфейсе SortedMap<K,V>
Возвращает:
первый (наименьший) ключ, находящийся в данный момент в этой карте
Вызывает исключение:
NoSuchElementException — если эта карта пуста

lastKey

public K lastKey()
Описание скопировано из интерфейса: SortedMap
Возвращает последний (наибольший) ключ, находящийся в данный момент в этой карте.
Указано в:
lastKey в интерфейсе SortedMap<K,V>
Возвращает:
последний (наибольший) ключ, находящийся в данный момент в этой карте
Вызывает исключение:
NoSuchElementException — если эта карта пуста

putFirst

public V putFirst(K k, V v)
Вызывает UnsupportedOperationException. Порядок обхода, определяемый методом сравнения этой карты, задаёт расположение соответствий, поэтому явное указание позиции не поддерживается.
Указано в:
putFirst в интерфейсе SequencedMap<K,V>
Указано в:
putFirst в интерфейсе SortedMap<K,V>
Параметры:
k — ключ
v — значение
Возвращает:
значение, ранее связанное с k, или null, если такого значения нет
Вызывает исключение:
UnsupportedOperationException — всегда
Начиная с версии:
21

putLast

public V putLast(K k, V v)
Вызывает UnsupportedOperationException. Порядок обхода, определяемый методом сравнения этой карты, задаёт расположение соответствий, поэтому явное указание позиции не поддерживается.
Указано в:
putLast в интерфейсе SequencedMap<K,V>
Указано в:
putLast в интерфейсе SortedMap<K,V>
Параметры:
k — ключ
v — значение
Возвращает:
значение, ранее связанное с k, или null, если такого значения нет
Вызывает исключение:
UnsupportedOperationException — всегда
Начиная с версии:
21

subMap

public ConcurrentNavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey до toKey. Если fromKey и toKey равны, возвращаемая карта пуста, если только fromInclusive и toInclusive не равны true. Возвращаемая карта связана с этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой.

При попытке вставить ключ за пределами диапазона или создать подмножество карты, одна из границ которого находится за пределами диапазона, возвращаемая карта вызовет IllegalArgumentException.

Указано в:
subMap в интерфейсе ConcurrentNavigableMap<K,V>
Указано в:
subMap в интерфейсе NavigableMap<K,V>
Параметры:
fromKey — нижняя граница ключей возвращаемой карты
fromInclusive — true, если нижнюю границу необходимо включить в возвращаемое представление
toKey — верхняя граница ключей возвращаемой карты
toInclusive — true, если верхнюю границу необходимо включить в возвращаемое представление
Возвращает:
представление части этой карты, ключи которой находятся в диапазоне от fromKey до toKey
Вызывает исключение:
ClassCastException — если fromKey и toKey нельзя сравнить друг с другом с помощью компаратора этой карты (или, если у карты нет компаратора, с помощью естественного порядка). Реализации могут, но не обязаны, вызывать это исключение, если fromKey или toKey нельзя сравнить с ключами, находящимися в данный момент в карте.
NullPointerException — если fromKey или toKey равно null
IllegalArgumentException — если fromKey больше toKey; или если диапазон самой карты ограничен и fromKey или toKey находится за его границами

headMap

public ConcurrentNavigableMap<K,V> headMap(K toKey, boolean inclusive)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой меньше (или равны, если inclusive равно true) toKey. Возвращаемая карта связана с этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой.

При попытке вставить ключ за пределами диапазона возвращаемая карта вызовет IllegalArgumentException.

Указано в:
headMap в интерфейсе ConcurrentNavigableMap<K,V>
Указано в:
headMap в интерфейсе NavigableMap<K,V>
Параметры:
toKey — верхняя граница ключей возвращаемой карты
inclusive — true, если верхнюю границу необходимо включить в возвращаемое представление
Возвращает:
представление части этой карты, ключи которой меньше (или равны, если inclusive равно true) toKey
Вызывает исключение:
ClassCastException — если toKey несовместим с компаратором этой карты (или, если у карты нет компаратора, если toKey не реализует Comparable). Реализации могут, но не обязаны, вызывать это исключение, если toKey нельзя сравнить с ключами, находящимися в данный момент в карте.
NullPointerException — если toKey равно null
IllegalArgumentException — если диапазон самой карты ограничен и toKey находится за его границами

tailMap

public ConcurrentNavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой больше (или равны, если inclusive равно true) fromKey. Возвращаемая карта связана с этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой.

При попытке вставить ключ за пределами диапазона возвращаемая карта вызовет IllegalArgumentException.

Указано в:
tailMap в интерфейсе ConcurrentNavigableMap<K,V>
Указано в:
tailMap в интерфейсе NavigableMap<K,V>
Параметры:
fromKey — нижняя граница ключей возвращаемой карты
inclusive — true, если нижнюю границу необходимо включить в возвращаемое представление
Возвращает:
представление части этой карты, ключи которой больше (или равны, если inclusive равно true) fromKey
Вызывает исключение:
ClassCastException — если fromKey несовместим с компаратором этой карты (или, если у карты нет компаратора, если fromKey не реализует Comparable). Реализации могут, но не обязаны, вызывать это исключение, если fromKey нельзя сравнить с ключами, находящимися в данный момент в карте.
NullPointerException — если fromKey равно null
IllegalArgumentException — если диапазон самой карты ограничен и fromKey находится за его границами

subMap

public ConcurrentNavigableMap<K,V> subMap(K fromKey, K toKey)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey включительно до toKey исключительно. (Если fromKey и toKey равны, возвращаемая карта пуста.) Возвращаемая карта связана с этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой.

При попытке вставить ключ за пределами диапазона возвращаемая карта вызовет IllegalArgumentException.

Эквивалентно subMap(fromKey, true, toKey, false).

Указано в:
subMap в интерфейсе ConcurrentNavigableMap<K,V>
Указано в:
subMap в интерфейсе NavigableMap<K,V>
Указано в:
subMap в интерфейсе SortedMap<K,V>
Параметры:
fromKey — нижняя граница (включительно) ключей возвращаемой карты
toKey — верхняя граница (исключительно) ключей возвращаемой карты
Возвращает:
представление части этой карты, ключи которой находятся в диапазоне от fromKey включительно до toKey исключительно
Вызывает исключение:
ClassCastException — если fromKey и toKey нельзя сравнить друг с другом с помощью компаратора этой карты (или, если у карты нет компаратора, с помощью естественного порядка). Реализации могут, но не обязаны, вызывать это исключение, если fromKey или toKey нельзя сравнить с ключами, находящимися в данный момент в карте.
NullPointerException — если fromKey или toKey равно null
IllegalArgumentException — если fromKey больше toKey; или если диапазон самой карты ограничен и fromKey или toKey находится за его границами

headMap

public ConcurrentNavigableMap<K,V> headMap(K toKey)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой строго меньше toKey. Возвращаемая карта связана с этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой.

При попытке вставить ключ за пределами диапазона возвращаемая карта вызовет IllegalArgumentException.

Эквивалентно headMap(toKey, false).

Указано в:
headMap в интерфейсе ConcurrentNavigableMap<K,V>
Указано в:
headMap в интерфейсе NavigableMap<K,V>
Указано в:
headMap в интерфейсе SortedMap<K,V>
Параметры:
toKey — верхняя граница (исключительно) ключей возвращаемой карты
Возвращает:
представление части этой карты, ключи которой строго меньше toKey
Вызывает исключение:
ClassCastException — если toKey несовместим с компаратором этой карты (или, если у карты нет компаратора, если toKey не реализует Comparable). Реализации могут, но не обязаны, вызывать это исключение, если toKey нельзя сравнить с ключами, находящимися в данный момент в карте.
NullPointerException — если toKey равно null
IllegalArgumentException — если диапазон самой карты ограничен и toKey находится за его границами

tailMap

public ConcurrentNavigableMap<K,V> tailMap(K fromKey)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой больше или равны fromKey. Возвращаемая карта связана с этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой.

При попытке вставить ключ за пределами диапазона возвращаемая карта вызовет IllegalArgumentException.

Эквивалентно tailMap(fromKey, true).

Указано в:
tailMap в интерфейсе ConcurrentNavigableMap<K,V>
Указано в:
tailMap в интерфейсе NavigableMap<K,V>
Указано в:
tailMap в интерфейсе SortedMap<K,V>
Параметры:
fromKey — нижняя граница (включительно) ключей возвращаемой карты
Возвращает:
представление части этой карты, ключи которой больше или равны fromKey
Вызывает исключение:
ClassCastException — если fromKey несовместим с компаратором этой карты (или, если у карты нет компаратора, если fromKey не реализует Comparable). Реализации могут, но не обязаны, вызывать это исключение, если fromKey нельзя сравнить с ключами, находящимися в данный момент в карте.
NullPointerException — если fromKey равно null
IllegalArgumentException — если диапазон самой карты ограничен и fromKey находится за его границами

lowerEntry

public Map.Entry<K,V> lowerEntry(K key)
Возвращает соответствие ключ-значение, связанное с наибольшим ключом, строго меньшим заданного ключа, или null, если такого ключа нет. Возвращаемая запись не поддерживает метод Entry.setValue.
Указано в:
lowerEntry в интерфейсе NavigableMap<K,V>
Параметры:
key — ключ
Возвращает:
запись с наибольшим ключом, меньшим key, или null, если такого ключа нет
Вызывает исключение:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в данный момент в карте
NullPointerException — если указанный ключ равен null

lowerKey

public K lowerKey(K key)
Описание скопировано из интерфейса: NavigableMap
Возвращает наибольший ключ, строго меньший заданного ключа, или null, если такого ключа нет.
Указано в:
lowerKey в интерфейсе NavigableMap<K,V>
Параметры:
key — ключ
Возвращает:
наибольший ключ, меньший key, или null, если такого ключа нет
Вызывает исключение:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в данный момент в карте
NullPointerException — если указанный ключ равен null

floorEntry

public Map.Entry<K,V> floorEntry(K key)
Возвращает соответствие ключ-значение, связанное с наибольшим ключом, меньшим или равным заданному ключу, или null, если такого ключа нет. Возвращаемая запись не поддерживает метод Entry.setValue.
Указано в:
floorEntry в интерфейсе NavigableMap<K,V>
Параметры:
key — ключ
Возвращает:
запись с наибольшим ключом, меньшим или равным key, или null, если такого ключа нет
Вызывает исключение:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в данный момент в карте
NullPointerException — если указанный ключ равен null

floorKey

public K floorKey(K key)
Описание скопировано из интерфейса: NavigableMap
Возвращает наибольший ключ, меньший или равный заданному ключу, или null, если такого ключа нет.
Указано в:
floorKey в интерфейсе NavigableMap<K,V>
Параметры:
key — ключ
Возвращает:
наибольший ключ, меньший или равный key, или null, если такого ключа нет
Вызывает исключение:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в данный момент в карте
NullPointerException — если указанный ключ равен null

ceilingEntry

public Map.Entry<K,V> ceilingEntry(K key)
Возвращает соответствие ключ-значение, связанное с наименьшим ключом, большим или равным заданному ключу, или null, если такой записи нет. Возвращаемая запись не поддерживает метод Entry.setValue.
Указано в:
ceilingEntry в интерфейсе NavigableMap<K,V>
Параметры:
key — ключ
Возвращает:
запись с наименьшим ключом, большим или равным key, или null, если такого ключа нет
Вызывает исключение:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в данный момент в карте
NullPointerException — если указанный ключ равен null

ceilingKey

public K ceilingKey(K key)
Описание скопировано из интерфейса: NavigableMap
Возвращает наименьший ключ, больший или равный заданному ключу, или null, если такого ключа нет.
Указано в:
ceilingKey в интерфейсе NavigableMap<K,V>
Параметры:
key — ключ
Возвращает:
наименьший ключ, больший или равный key, или null, если такого ключа нет
Вызывает исключение:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в данный момент в карте
NullPointerException — если указанный ключ равен null

higherEntry

public Map.Entry<K,V> higherEntry(K key)
Возвращает соответствие ключ-значение, связанное с наименьшим ключом, строго большим заданного ключа, или null, если такого ключа нет. Возвращаемая запись не поддерживает метод Entry.setValue.
Указано в:
higherEntry в интерфейсе NavigableMap<K,V>
Параметры:
key — ключ
Возвращает:
запись с наименьшим ключом, большим key, или null, если такого ключа нет
Вызывает исключение:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в данный момент в карте
NullPointerException — если указанный ключ равен null

higherKey

public K higherKey(K key)
Описание скопировано из интерфейса: NavigableMap
Возвращает наименьший ключ, строго больший заданного ключа, или null, если такого ключа нет.
Указано в:
higherKey в интерфейсе NavigableMap<K,V>
Параметры:
key — ключ
Возвращает:
наименьший ключ, больший key, или null, если такого ключа нет
Вызывает исключение:
ClassCastException — если указанный ключ нельзя сравнить с ключами, находящимися в данный момент в карте
NullPointerException — если указанный ключ равен null

firstEntry

public Map.Entry<K,V> firstEntry()
Возвращает соответствие ключ-значение, связанное с наименьшим ключом в этой карте, или null, если карта пуста. Возвращаемая запись не поддерживает метод Entry.setValue.
Указано в:
firstEntry в интерфейсе NavigableMap<K,V>
Указано в:
firstEntry в интерфейсе SequencedMap<K,V>
Возвращает:
запись с наименьшим ключом или null, если эта карта пуста

lastEntry

public Map.Entry<K,V> lastEntry()
Возвращает соответствие ключ-значение, связанное с наибольшим ключом в этой карте, или null, если карта пуста. Возвращаемая запись не поддерживает метод Entry.setValue.
Указано в:
lastEntry в интерфейсе NavigableMap<K,V>
Указано в:
lastEntry в интерфейсе SequencedMap<K,V>
Возвращает:
запись с наибольшим ключом или null, если эта карта пуста

pollFirstEntry

public Map.Entry<K,V> pollFirstEntry()
Удаляет и возвращает соответствие ключ-значение, связанное с наименьшим ключом в этой карте, или null, если карта пуста. Возвращаемая запись не поддерживает метод Entry.setValue.
Указано в:
pollFirstEntry в интерфейсе NavigableMap<K,V>
Указано в:
pollFirstEntry в интерфейсе SequencedMap<K,V>
Возвращает:
удалённая первая запись этой карты или null, если эта карта пуста

pollLastEntry

public Map.Entry<K,V> pollLastEntry()
Удаляет и возвращает соответствие ключ-значение, связанное с наибольшим ключом в этой карте, или null, если карта пуста. Возвращаемая запись не поддерживает метод Entry.setValue.
Указано в:
pollLastEntry в интерфейсе NavigableMap<K,V>
Указано в:
pollLastEntry в интерфейсе SequencedMap<K,V>
Возвращает:
удалённая последняя запись этой карты или null, если эта карта пуста

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, способы обхода ограничений и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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