Класс TreeMap<K, V>
- Параметры типа:
K— тип ключей, поддерживаемых этой картойV— тип отображаемых значений
- Все реализуемые интерфейсы:
Serializable, Cloneable, Map<K,V>, NavigableMap<K, V>, SequencedMap<K, V>, SortedMap<K, V>
public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, Serializable
NavigableMap на основе красно-чёрного дерева. Карта сортируется согласно естественному порядку ключей или с помощью Comparator, предоставленного при создании карты; выбор зависит от используемого конструктора. Эта реализация гарантирует временную сложность log(n) для операций containsKey, get, put и remove. Алгоритмы являются адаптациями алгоритмов из книги Кормена, Лейзерсона и Ривеста «Введение в алгоритмы».
Обратите внимание: порядок, поддерживаемый древовидной картой, как и любой отсортированной картой, независимо от того, задан ли явный компаратор, должен быть согласован с equals, чтобы эта отсортированная карта корректно реализовывала интерфейс Map. (Точное определение понятия «согласован с equals» см. в Comparable или Comparator.) Это связано с тем, что интерфейс Map определён в терминах операции equals, тогда как отсортированная карта выполняет все сравнения ключей с помощью метода
compareTo (или compare), поэтому два ключа, которые этот метод считает равными, с точки зрения отсортированной карты равны. Поведение отсортированной карты определено, даже если её порядок не согласован с equals; просто она не соблюдает общий контракт интерфейса Map.
Обратите внимание: эта реализация не синхронизирована. Если несколько потоков одновременно обращаются к карте и хотя бы один из них структурно изменяет её, доступ должен синхронизироваться извне. (Структурное изменение — это любая операция, которая добавляет или удаляет одно или несколько отображений; простое изменение значения, связанного с существующим ключом, структурным изменением не является.) Обычно для этого синхронизируют некоторый объект, который естественным образом инкапсулирует карту. Если такого объекта нет, карту следует «обернуть» с помощью метода Collections.synchronizedSortedMap. Лучше всего сделать это при создании карты, чтобы предотвратить случайный несинхронизированный доступ к ней:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
Итераторы, возвращаемые методом iterator коллекций, полученных с помощью всех методов этой классовой группы, возвращающих «представления коллекций», являются быстро завершающимися: если после создания итератора карта будет структурно изменена любым способом, кроме вызова собственного метода remove итератора, итератор выбросит исключение ConcurrentModificationException. Таким образом, при одновременном изменении карты итератор быстро и корректно завершает работу, а не рискует в неопределённый момент в будущем продемонстрировать произвольное, недетерминированное поведение.
Обратите внимание: гарантировать быстрое завершение итератора невозможно, поскольку, вообще говоря, при несинхронизированном одновременном изменении нельзя дать никаких строгих гарантий. Итераторы выбрасывают ConcurrentModificationException лишь по возможности. Поэтому было бы ошибкой писать программу, корректность которой зависит от этого исключения: быстрое завершение итераторов следует использовать только для обнаружения ошибок.
Методы ceilingEntry(K), firstEntry(), floorEntry(K), higherEntry(K), lastEntry(), lowerEntry(K), pollFirstEntry() и pollLastEntry() возвращают экземпляры Map.Entry, представляющие собой снимки отображений на момент вызова. Они не поддерживают изменение базовой карты с помощью необязательного метода setValue.
Методы putFirst и putLast этого класса выбрасывают UnsupportedOperationException. Порядок элементов определяется методом сравнения, поэтому явное размещение элементов не поддерживается.
Этот класс входит в состав фреймворка коллекций Java.
- Начиная с версии:
- 1.2
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе AbstractMap
AbstractMap.SimpleEntry<K, V>, AbstractMap.SimpleImmutableEntry<K, V> | Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
AbstractMap.SimpleEntry<K, |
Запись, содержащая ключ и значение. |
static class |
AbstractMap.SimpleImmutableEntry<K, |
Неизменяемая запись, содержащая ключ и значение. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TreeMap() |
Создаёт новую пустую древовидную карту, использующую естественный порядок ключей. |
TreeMap |
Создаёт новую пустую древовидную карту, упорядоченную согласно заданному компаратору. |
TreeMap |
Создаёт новую древовидную карту, содержащую те же отображения, что и заданная карта, и упорядоченную согласно естественному порядку ключей. |
TreeMap |
Создаёт новую древовидную карту, содержащую те же отображения и использующую тот же порядок, что и заданная отсортированная карта. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Map.Entry |
ceilingEntry |
Возвращает отображение ключ-значение, связанное с наименьшим ключом, большим или равным заданному, либо null, если такого ключа нет. |
K |
ceilingKey |
Возвращает наименьший ключ, больший или равный заданному, либо null, если такого ключа нет. |
void |
clear() |
Удаляет из этой карты все отображения. |
Object |
clone() |
Возвращает поверхностную копию этого экземпляра TreeMap. |
Comparator |
comparator() |
Возвращает компаратор, используемый для упорядочивания ключей в этой карте, либо null, если карта использует естественный порядок ключей. |
V |
compute |
Пытается вычислить отображение для указанного ключа и его текущего отображаемого значения либо null, если текущее отображение отсутствует (необязательная операция). |
V |
computeIfAbsent |
Если указанный ключ ещё не связан со значением (или отображается в null), пытается вычислить его значение с помощью заданной функции отображения и добавляет его в эту карту, если результат не равен null (необязательная операция). |
V |
computeIfPresent |
Если для указанного ключа имеется ненулевое значение, пытается вычислить новое отображение, используя ключ и его текущее отображаемое значение (необязательная операция). |
boolean |
containsKey |
Возвращает true, если эта карта содержит отображение для указанного ключа. |
boolean |
containsValue |
Возвращает true, если эта карта отображает один или несколько ключей в указанное значение. |
NavigableSet |
descendingKeySet() |
Возвращает представление NavigableSet, содержащих ключи этой карты, в обратном порядке. |
NavigableMap |
descendingMap() |
Возвращает представление отображений этой карты в обратном порядке. |
Set |
entrySet() |
Возвращает представление Set отображений этой карты. |
Map.Entry |
firstEntry() |
Возвращает отображение ключ-значение, связанное с наименьшим ключом этой карты, либо null, если карта пуста. |
K |
firstKey() |
Возвращает первый (наименьший) ключ, содержащийся в этой карте. |
Map.Entry |
floorEntry |
Возвращает отображение ключ-значение, связанное с наибольшим ключом, меньшим или равным заданному, либо null, если такого ключа нет. |
K |
floorKey |
Возвращает наибольший ключ, меньший или равный заданному, либо null, если такого ключа нет. |
V |
get |
Возвращает значение, которому сопоставлен указанный ключ, либо null, если эта карта не содержит отображения для данного ключа. |
SortedMap |
headMap |
Возвращает представление части этой карты, ключи которой строго меньше toKey. |
NavigableMap |
headMap |
Возвращает представление части этой карты, ключи которой меньше toKey (или меньше либо равны ему, если inclusive равно true). |
Map.Entry |
higherEntry |
Возвращает отображение ключ-значение, связанное с наименьшим ключом, строго большим заданного, либо null, если такого ключа нет. |
K |
higherKey |
Возвращает наименьший ключ, строго больший заданного, либо null, если такого ключа нет. |
Set |
keySet() |
Возвращает представление Set ключей этой карты. |
Map.Entry |
lastEntry() |
Возвращает отображение ключ-значение, связанное с наибольшим ключом этой карты, либо null, если карта пуста. |
K |
lastKey() |
Возвращает последний (наибольший) ключ, содержащийся в этой карте. |
Map.Entry |
lowerEntry |
Возвращает отображение ключ-значение, связанное с наибольшим ключом, строго меньшим заданного, либо null, если такого ключа нет. |
K |
lowerKey |
Возвращает наибольший ключ, строго меньший заданного, либо null, если такого ключа нет. |
V |
merge |
Если указанный ключ ещё не связан со значением или связан с null, связывает его с заданным ненулевым значением (необязательная операция). |
NavigableSet |
navigableKeySet() |
Возвращает представление NavigableSet ключей этой карты. |
Map.Entry |
pollFirstEntry() |
Удаляет и возвращает отображение ключ-значение, связанное с наименьшим ключом этой карты, либо null, если карта пуста (необязательная операция). |
Map.Entry |
pollLastEntry() |
Удаляет и возвращает отображение ключ-значение, связанное с наибольшим ключом этой карты, либо null, если карта пуста (необязательная операция). |
V |
put |
Связывает указанное значение с указанным ключом в этой карте. |
void |
putAll |
Копирует все отображения из указанной карты в эту карту. |
V |
putFirst |
Выбрасывает UnsupportedOperationException. |
V |
putLast |
Выбрасывает UnsupportedOperationException. |
V |
remove |
Удаляет отображение для этого ключа из TreeMap, если оно существует. |
int |
size() |
Возвращает количество отображений ключ-значение в этой карте. |
NavigableMap |
subMap |
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey до toKey. |
SortedMap |
subMap |
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey включительно до toKey исключительно. |
SortedMap |
tailMap |
Возвращает представление части этой карты, ключи которой больше или равны fromKey. |
NavigableMap |
tailMap |
Возвращает представление части этой карты, ключи которой больше fromKey (или больше либо равны ему, если inclusive равно true). |
Collection |
values() |
Возвращает представление Collection значений этой карты. |
Методы, объявленные в классе AbstractMap
equals, hashCode, isEmpty, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный объект с этой картой на равенство. |
int |
hashCode() |
Возвращает хеш-код этой карты. |
boolean |
isEmpty() |
Возвращает true, если эта карта не содержит отображений ключ-значение. |
String |
toString() |
Возвращает строковое представление этой карты. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс этого Object во время выполнения. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Map
forEach, getOrDefault, putIfAbsent, remove, replace, replace, replaceAll | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEach |
Выполняет заданное действие для каждой записи этой карты, пока не будут обработаны все записи или действие не выбросит исключение. |
default V |
getOrDefault |
Возвращает значение, которому сопоставлен указанный ключ, либо defaultValue, если эта карта не содержит отображения для данного ключа. |
default V |
putIfAbsent |
Если указанный ключ ещё не связан со значением (или отображается в null), связывает его с заданным значением и возвращает null; в противном случае возвращает текущее значение (необязательная операция). |
default boolean |
remove |
Удаляет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение (необязательная операция). |
default V |
replace |
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено какое-либо значение (необязательная операция). |
default boolean |
replace |
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение (необязательная операция). |
default void |
replaceAll |
Заменяет значение каждой записи результатом вызова заданной функции для этой записи, пока не будут обработаны все записи или функция не выбросит исключение (необязательная операция). |
Методы, объявленные в интерфейсе NavigableMap
reversed | Модификатор и тип | Метод | Описание |
|---|---|---|
default NavigableMap |
reversed() |
Возвращает представление этой карты в обратном порядке. |
Методы, объявленные в интерфейсе SequencedMap
sequencedEntrySet, sequencedKeySet, sequencedValues | Модификатор и тип | Метод | Описание |
|---|---|---|
default SequencedSet |
sequencedEntrySet() |
Возвращает представление SequencedSet для entrySet этой карты. |
default SequencedSet |
sequencedKeySet() |
Возвращает представление SequencedSet для keySet этой карты. |
default SequencedCollection |
sequencedValues() |
Возвращает представление SequencedCollection для коллекции values этой карты. |
Подробное описание конструкторов
TreeMap
public TreeMap()
Comparable. Кроме того, все такие ключи должны быть взаимно сопоставимы: k1.compareTo(k2) не должен выбрасывать ClassCastException для любых ключей k1 и k2 в карте. Если пользователь попытается добавить в карту ключ, нарушающий это условие (например, попытается добавить строковый ключ в карту с целочисленными ключами), вызов put(Object key, Object value) выбросит ClassCastException.TreeMap
public TreeMap(Comparator<? super K> comparator)
comparator.compare(k1,
k2) не должен выбрасывать ClassCastException для любых ключей k1 и k2 в карте. Если пользователь попытается добавить в карту ключ, нарушающий это условие, вызов put(Object
key, Object value) выбросит ClassCastException.- Параметры:
-
comparator— компаратор, который будет использоваться для упорядочивания этой карты. Еслиnull, будет использоваться естественный порядок ключей.
TreeMap
public TreeMap(Map<? extends K, ? extends V> m)
Comparable. Кроме того, все такие ключи должны быть взаимно сопоставимы: k1.compareTo(k2) не должен выбрасывать ClassCastException для любых ключей k1 и k2 в карте. Этот метод выполняется за время n*log(n).- Параметры:
-
m— карта, соответствия из которой следует поместить в эту карту - Исключения:
-
ClassCastException— если ключи в m не реализуютComparableили не являются взаимно сопоставимыми -
NullPointerException— если заданная карта равна null
TreeMap
public TreeMap(SortedMap<K, ? extends V> m)
- Параметры:
-
m— отсортированная карта, соответствия из которой следует поместить в эту карту и компаратор которой будет использоваться для сортировки этой карты - Исключения:
-
NullPointerException— если заданная карта равна null
Подробное описание методов
size
containsKey
public boolean containsKey(Object key)
true, если эта карта содержит соответствие для заданного ключа.- Определено в:
-
containsKeyв интерфейсеMap<K,V> - Переопределено в:
-
containsKeyв классеAbstractMap<K,V> - Параметры:
-
key— ключ, наличие которого в этой карте проверяется - Возвращает:
-
true, если эта карта содержит соответствие для заданного ключа - Исключения:
-
ClassCastException— если заданный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если заданный ключ равен null, а в этой карте используется естественный порядок, либо ее компаратор не допускает ключи null
containsValue
public boolean containsValue(Object value)
true, если эта карта сопоставляет один или несколько ключей с заданным значением. Точнее, возвращает true тогда и только тогда, когда эта карта содержит хотя бы одно соответствие значению v, для которого (value==null ? v==null : value.equals(v)). Для большинства реализаций эта операция, вероятно, потребует времени, линейно зависящего от размера карты.- Определено в:
-
containsValueв интерфейсеMap<K,V> - Переопределено в:
-
containsValueв классеAbstractMap<K,V> - Параметры:
-
value— значение, наличие которого в этой карте проверяется - Возвращает:
-
true, если существует соответствие значениюvalue; иначеfalse - С версии:
- 1.2
get
public V get(Object key)
null, если в этой карте нет соответствия для ключа. Точнее, если эта карта содержит соответствие ключа k значению v, причем согласно порядку карты key сравнивается как равный k, этот метод возвращает v; в противном случае он возвращает null. (Такое соответствие может быть не более чем одно.)
Возвращаемое значение null не обязательно означает, что в карте нет соответствия для ключа; также возможно, что карта явно сопоставляет ключу значение null. Для различения этих случаев можно использовать операцию containsKey.
- Определено в:
-
getв интерфейсеMap<K,V> - Переопределено в:
-
getв классеAbstractMap<K,V> - Параметры:
-
key— ключ, связанное значение которого следует вернуть - Возвращает:
- значение, которому соответствует заданный ключ, или
null, если в этой карте нет соответствия для ключа - Исключения:
-
ClassCastException— если заданный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если заданный ключ равен null, а в этой карте используется естественный порядок, либо ее компаратор не допускает ключи null
comparator
public Comparator<? super K> comparator()
SortedMapnull, если в этой карте используется естественный порядок ключей.- Определено в:
-
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
putAll
public void putAll(Map<? extends K, ? extends V> map)
- Определено в:
-
putAllв интерфейсеMap<K,V> - Переопределено в:
-
putAllв классеAbstractMap<K,V> - Параметры:
-
map— соответствия, которые следует сохранить в этой карте - Исключения:
-
ClassCastException— если класс ключа или значения в заданной карте не позволяет сохранить его в этой карте -
NullPointerException— если заданная карта равна null или содержит ключ null, а эта карта не допускает ключи null
put
public V put(K key, V value)
- Определено в:
-
putв интерфейсеMap<K,V> - Переопределено в:
-
putв классеAbstractMap<K,V> - Параметры:
-
key— ключ, с которым следует связать заданное значение -
value— значение, которое следует связать с заданным ключом - Возвращает:
- значение, ранее связанное с
key, илиnull, если соответствия дляkeyне было. (Возвращаемое значениеnullтакже может означать, что ранее карта связывалаnullсkey.) - Исключения:
-
ClassCastException— если заданный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если заданный ключ равен null, а в этой карте используется естественный порядок, либо ее компаратор не допускает ключи null
computeIfAbsent
public V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
null), метод пытается вычислить значение с помощью заданной функции отображения и добавить его в эту карту, если null (необязательная операция). Если функция отображения возвращает null, соответствие не сохраняется. Если сама функция отображения выбрасывает (непроверяемое) исключение, оно повторно выбрасывается, а соответствие не сохраняется. Чаще всего этот метод используется для создания нового объекта в качестве начального сопоставленного значения или мемоизированного результата, например:
map.computeIfAbsent(key, k -> new Value(f(k)));
Или для реализации карты с несколькими значениями, Map<K,Collection<V>>, которая поддерживает несколько значений для каждого ключа:
map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
Во время вычисления функция отображения не должна изменять эту карту.
Этот метод предпримет все разумные усилия, чтобы выбросить ConcurrentModificationException, если будет обнаружено, что функция отображения изменяет эту карту во время вычисления.
- Определено в:
-
computeIfAbsentв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым следует связать заданное значение -
mappingFunction— функция отображения для вычисления значения - Возвращает:
- текущее (существующее или вычисленное) значение, связанное с заданным ключом, или null, если вычисленное значение равно null
- Исключения:
-
ConcurrentModificationException— если обнаружено, что функция отображения изменила эту карту
computeIfPresent
public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
Если функция пересопоставления возвращает null, соответствие удаляется. Если сама функция пересопоставления выбрасывает (непроверяемое) исключение, оно повторно выбрасывается, а текущее соответствие остается неизменным.
Во время вычисления функция пересопоставления не должна изменять эту карту.
Этот метод предпримет все разумные усилия, чтобы выбросить ConcurrentModificationException, если будет обнаружено, что функция пересопоставления изменяет эту карту во время вычисления.
- Определено в:
-
computeIfPresentв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым следует связать заданное значение -
remappingFunction— функция пересопоставления для вычисления значения - Возвращает:
- новое значение, связанное с заданным ключом, или null, если такого значения нет
- Исключения:
-
ConcurrentModificationException— если обнаружено, что функция пересопоставления изменила эту карту
compute
public V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)
null, если текущего соответствия нет (необязательная операция). Например, чтобы создать или добавить String msg к сопоставленному значению: map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg)) (Для таких целей часто удобнее использовать метод merge().) Если функция пересопоставления возвращает null, соответствие удаляется (или остается отсутствующим, если изначально его не было). Если сама функция пересопоставления выбрасывает (непроверяемое) исключение, оно повторно выбрасывается, а текущее соответствие остается неизменным.
Во время вычисления функция пересопоставления не должна изменять эту карту.
Этот метод предпримет все разумные усилия, чтобы выбросить ConcurrentModificationException, если будет обнаружено, что функция пересопоставления изменяет эту карту во время вычисления.
- Определено в:
-
computeв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым следует связать заданное значение -
remappingFunction— функция пересопоставления для вычисления значения - Возвращает:
- новое значение, связанное с заданным ключом, или null, если такого значения нет
- Исключения:
-
ConcurrentModificationException— если обнаружено, что функция пересопоставления изменила эту карту
merge
public V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
null. Этот метод может пригодиться при объединении нескольких сопоставленных значений для одного ключа. Например, чтобы создать или добавить String msg к сопоставленному значению: map.merge(key, msg, String::concat)
Если функция пересопоставления возвращает null, соответствие удаляется. Если сама функция пересопоставления выбрасывает (непроверяемое) исключение, оно повторно выбрасывается, а текущее соответствие остается неизменным.
Во время вычисления функция пересопоставления не должна изменять эту карту.
Этот метод предпримет все разумные усилия, чтобы выбросить ConcurrentModificationException, если будет обнаружено, что функция пересопоставления изменяет эту карту во время вычисления.
- Определено в:
-
mergeв интерфейсеMap<K,V> - Параметры:
-
key— ключ, с которым следует связать результирующее значение -
value— ненулевое значение, которое следует объединить с существующим значением, связанным с ключом, или связать с ключом, если существующего значения нет либо ему соответствует null -
remappingFunction— функция пересопоставления для повторного вычисления имеющегося значения - Возвращает:
- новое значение, связанное с заданным ключом, или null, если с ключом не связано никакое значение
- Исключения:
-
ConcurrentModificationException— если обнаружено, что функция пересопоставления изменила эту карту
remove
public V remove(Object key)
- Определено в:
-
removeв интерфейсеMap<K,V> - Переопределено в:
-
removeв классеAbstractMap<K,V> - Параметры:
-
key— ключ, соответствие для которого следует удалить - Возвращает:
- значение, ранее связанное с
key, илиnull, если соответствия дляkeyне было. (Возвращаемое значениеnullтакже может означать, что ранее карта связывалаnullсkey.) - Исключения:
-
ClassCastException— если заданный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если заданный ключ равен null, а в этой карте используется естественный порядок, либо ее компаратор не допускает ключи null
clear
clone
public Object clone()
TreeMap. (Сами ключи и значения не клонируются.)- Переопределено в:
-
cloneв классеAbstractMap<K,V> - Возвращает:
- поверхностную копию этой карты
- См. также:
firstEntry
public Map.Entry<K,V> firstEntry()
NavigableMapnull, если карта пуста.- Определено в:
-
firstEntryв интерфейсеNavigableMap<K,V> - Определено в:
-
firstEntryв интерфейсеSequencedMap<K,V> - Возвращает:
- запись с наименьшим ключом или
null, если эта карта пуста - С версии:
- 1.6
lastEntry
public Map.Entry<K,V> lastEntry()
NavigableMapnull, если карта пуста.- Определено в:
-
lastEntryв интерфейсеNavigableMap<K,V> - Определено в:
-
lastEntryв интерфейсеSequencedMap<K,V> - Возвращает:
- запись с наибольшим ключом или
null, если эта карта пуста - С версии:
- 1.6
pollFirstEntry
public Map.Entry<K,V> pollFirstEntry()
NavigableMapnull, если карта пуста (необязательная операция).- Определено в:
-
pollFirstEntryв интерфейсеNavigableMap<K,V> - Определено в:
-
pollFirstEntryв интерфейсеSequencedMap<K,V> - Возвращает:
- удаленную первую запись этой карты или
null, если эта карта пуста - С версии:
- 1.6
pollLastEntry
public Map.Entry<K,V> pollLastEntry()
NavigableMapnull, если карта пуста (необязательная операция).- Определено в:
-
pollLastEntryв интерфейсеNavigableMap<K,V> - Определено в:
-
pollLastEntryв интерфейсеSequencedMap<K,V> - Возвращает:
- удаленную последнюю запись этой карты или
null, если эта карта пуста - С версии:
- 1.6
lowerEntry
public Map.Entry<K,V> lowerEntry(K key)
NavigableMapnull, если такого ключа нет.- Определено в:
-
lowerEntryв интерфейсеNavigableMap<K,V> - Параметры:
-
key— ключ - Возвращает:
- запись с наибольшим ключом, меньшим
key, илиnull, если такого ключа нет - Исключения:
-
ClassCastException— если заданный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если заданный ключ равен null, а в этой карте используется естественный порядок, либо ее компаратор не допускает ключи null - С версии:
- 1.6
lowerKey
public K lowerKey(K key)
NavigableMapnull, если такого ключа нет.- Определено в:
-
lowerKeyв интерфейсеNavigableMap<K,V> - Параметры:
-
key— ключ - Возвращает:
- наибольший ключ, меньший
key, илиnull, если такого ключа нет - Исключения:
-
ClassCastException— если заданный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если заданный ключ равен null, а в этой карте используется естественный порядок, либо ее компаратор не допускает ключи null - С версии:
- 1.6
floorEntry
public Map.Entry<K,V> floorEntry(K key)
NavigableMapnull, если такого ключа нет.- Определено в:
-
floorEntryв интерфейсеNavigableMap<K,V> - Параметры:
-
key— ключ - Возвращает:
- запись с наибольшим ключом, меньшим или равным
key, илиnull, если такого ключа нет - Исключения:
-
ClassCastException— если заданный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если заданный ключ равен null, а в этой карте используется естественный порядок, либо ее компаратор не допускает ключи null - С версии:
- 1.6
floorKey
public K floorKey(K key)
NavigableMapnull, если такого ключа нет.- Определено в:
-
floorKeyв интерфейсеNavigableMap<K,V> - Параметры:
-
key— ключ - Возвращает:
- наибольший ключ, меньший или равный
key, илиnull, если такого ключа нет - Исключения:
-
ClassCastException— если заданный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если заданный ключ равен null, а в этой карте используется естественный порядок, либо ее компаратор не допускает ключи null - С версии:
- 1.6
ceilingEntry
public Map.Entry<K,V> ceilingEntry(K key)
NavigableMapnull, если такого ключа нет.- Определено в:
-
ceilingEntryв интерфейсеNavigableMap<K,V> - Параметры:
-
key— ключ - Возвращает:
- запись с наименьшим ключом, большим или равным
key, илиnull, если такого ключа нет - Вызывает исключение:
-
ClassCastException— если указанный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если указанный ключ равен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null - Начиная с версии:
- 1.6
ceilingKey
public K ceilingKey(K key)
NavigableMapnull, если такого ключа нет.- Определено в:
-
ceilingKeyв интерфейсеNavigableMap<K,V> - Параметры:
-
key— ключ - Возвращает:
- наименьший ключ, больший или равный
key, илиnull, если такого ключа нет - Вызывает исключение:
-
ClassCastException— если указанный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если указанный ключ равен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null - Начиная с версии:
- 1.6
higherEntry
public Map.Entry<K,V> higherEntry(K key)
NavigableMapnull, если такого ключа нет.- Определено в:
-
higherEntryв интерфейсеNavigableMap<K,V> - Параметры:
-
key— ключ - Возвращает:
- запись с наименьшим ключом, большим, чем
key, илиnull, если такого ключа нет - Вызывает исключение:
-
ClassCastException— если указанный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если указанный ключ равен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null - Начиная с версии:
- 1.6
higherKey
public K higherKey(K key)
NavigableMapnull, если такого ключа нет.- Определено в:
-
higherKeyв интерфейсеNavigableMap<K,V> - Параметры:
-
key— ключ - Возвращает:
- наименьший ключ, больший, чем
key, илиnull, если такого ключа нет - Вызывает исключение:
-
ClassCastException— если указанный ключ нельзя сравнить с ключами, находящимися в карте -
NullPointerException— если указанный ключ равен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null - Начиная с версии:
- 1.6
keySet
public Set<K> keySet()
Set. Итератор набора возвращает ключи в порядке возрастания. Сплитератор набора выполняет позднее связывание, является fail-fast и дополнительно сообщает о Spliterator.SORTED и Spliterator.ORDERED, задавая порядок обхода по возрастанию ключей. Компаратор сплитератора (см. Spliterator.getComparator()) равен null, если компаратор древовидной карты (см. comparator()) равен null. В противном случае компаратор сплитератора совпадает с компаратором древовидной карты или задаёт тот же полный порядок.
Набор поддерживается картой, поэтому изменения карты отражаются в наборе и наоборот. Если карта изменяется во время итерации по набору (кроме изменения с помощью собственной операции remove итератора), результаты итерации не определены. Набор поддерживает удаление элементов, при котором из карты удаляется соответствующее отображение, с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются.
descendingKeySet
public NavigableSet<K> descendingKeySet()
NavigableMapNavigableSet с обратным порядком сортировки. Итератор набора возвращает ключи в порядке убывания. Набор поддерживается картой, поэтому изменения карты отражаются в наборе и наоборот. Если карта изменяется во время итерации по набору (кроме изменения с помощью собственной операции
remove итератора), результаты итерации не определены. Набор поддерживает удаление элементов, при котором из карты удаляется соответствующее отображение, с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются.- Определено в:
-
descendingKeySetв интерфейсеNavigableMap<K,V> - Возвращает:
- навигационное представление ключей этой карты в виде набора с обратным порядком сортировки
- Начиная с версии:
- 1.6
values
public Collection<V> values()
Collection. Итератор коллекции возвращает значения в порядке возрастания соответствующих ключей. Сплитератор коллекции выполняет позднее связывание, является fail-fast и дополнительно сообщает о Spliterator.ORDERED, задавая порядок обхода по возрастанию соответствующих ключей.
Коллекция поддерживается картой, поэтому изменения карты отражаются в коллекции и наоборот. Если карта изменяется во время итерации по коллекции (кроме изменения с помощью собственной операции remove итератора), результаты итерации не определены. Коллекция поддерживает удаление элементов, при котором из карты удаляется соответствующее отображение, с помощью операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются.
entrySet
public Set<Map.Entry<K,V>> entrySet()
Set. Итератор набора возвращает записи в порядке возрастания ключей. Сплитератор набора выполняет позднее связывание, является fail-fast и дополнительно сообщает о Spliterator.SORTED и Spliterator.ORDERED, задавая порядок обхода по возрастанию ключей.
Набор поддерживается картой, поэтому изменения карты отражаются в наборе и наоборот. Если карта изменяется во время итерации по набору (кроме изменения с помощью собственной операции remove итератора или с помощью операции setValue для записи карты, возвращённой итератором), результаты итерации не определены. Набор поддерживает удаление элементов, при котором из карты удаляется соответствующее отображение, с помощью операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Операции add и addAll не поддерживаются.
descendingMap
public NavigableMap<K,V> descendingMap()
NavigableMapremove итератора), результаты итерации не определены. Порядок сортировки возвращённой карты эквивалентен порядку, задаваемому Collections.reverseOrder(comparator()). Выражение m.descendingMap().descendingMap() возвращает представление m, по существу эквивалентное m.
- Определено в:
-
descendingMapв интерфейсеNavigableMap<K,V> - Возвращает:
- представление этой карты с обратным порядком сортировки
- Начиная с версии:
- 1.6
subMap
public NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
NavigableMapfromKey до toKey. Если fromKey и toKey равны, возвращённая карта пуста, если только fromInclusive и toInclusive не равны true. Возвращённая карта поддерживается этой картой, поэтому изменения возвращённой карты отражаются в этой карте и наоборот. Возвращённая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращённая карта вызовет IllegalArgumentException. То же исключение будет вызвано при попытке создать под-карту, одна из конечных точек которой находится за пределами диапазона.
- Определено в:
-
subMapв интерфейсеNavigableMap<K,V> - Параметры:
-
fromKey— нижняя граница ключей возвращённой карты -
fromInclusive—true, если нижнюю границу нужно включить в возвращённое представление -
toKey— верхняя граница ключей возвращённой карты -
toInclusive—true, если верхнюю границу нужно включить в возвращённое представление - Возвращает:
- представление части этой карты, ключи которой находятся в диапазоне от
fromKeyдоtoKey - Вызывает исключение:
-
ClassCastException— еслиfromKeyиtoKeyнельзя сравнить друг с другом с помощью компаратора этой карты (или, если у карты нет компаратора, с помощью естественного порядка сортировки). Реализации могут, но не обязаны, вызывать это исключение, еслиfromKeyилиtoKeyнельзя сравнить с ключами, находящимися в карте. -
NullPointerException— еслиfromKeyилиtoKeyравен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null -
IllegalArgumentException— еслиfromKeyбольшеtoKey; либо если сама карта имеет ограниченный диапазон иfromKeyилиtoKeyнаходится за его пределами - Начиная с версии:
- 1.6
headMap
public NavigableMap<K,V> headMap(K toKey, boolean inclusive)
NavigableMaptoKey (или меньше либо равны ему, если inclusive равно true). Возвращённая карта поддерживается этой картой, поэтому изменения возвращённой карты отражаются в этой карте и наоборот. Возвращённая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращённая карта вызовет IllegalArgumentException.
- Определено в:
-
headMapв интерфейсеNavigableMap<K,V> - Параметры:
-
toKey— верхняя граница ключей возвращённой карты -
inclusive—true, если верхнюю границу нужно включить в возвращённое представление - Возвращает:
- представление части этой карты, ключи которой меньше
toKey(или меньше либо равны ему, еслиinclusiveравно true) - Вызывает исключение:
-
ClassCastException— еслиtoKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиtoKeyне реализуетComparable). Реализации могут, но не обязаны, вызывать это исключение, еслиtoKeyнельзя сравнить с ключами, находящимися в карте. -
NullPointerException— еслиtoKeyравен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null -
IllegalArgumentException— если сама карта имеет ограниченный диапазон иtoKeyнаходится за его пределами - Начиная с версии:
- 1.6
tailMap
public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
NavigableMapfromKey (или больше либо равны ему, если inclusive равно true). Возвращённая карта поддерживается этой картой, поэтому изменения возвращённой карты отражаются в этой карте и наоборот. Возвращённая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращённая карта вызовет IllegalArgumentException.
- Определено в:
-
tailMapв интерфейсеNavigableMap<K,V> - Параметры:
-
fromKey— нижняя граница ключей возвращённой карты -
inclusive—true, если нижнюю границу нужно включить в возвращённое представление - Возвращает:
- представление части этой карты, ключи которой больше
fromKey(или больше либо равны ему, еслиinclusiveравно true) - Вызывает исключение:
-
ClassCastException— еслиfromKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиfromKeyне реализуетComparable). Реализации могут, но не обязаны, вызывать это исключение, еслиfromKeyнельзя сравнить с ключами, находящимися в карте. -
NullPointerException— еслиfromKeyравен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null -
IllegalArgumentException— если сама карта имеет ограниченный диапазон иfromKeyнаходится за его пределами - Начиная с версии:
- 1.6
subMap
public SortedMap<K,V> subMap(K fromKey, K toKey)
NavigableMapfromKey включительно до toKey исключительно. (Если fromKey и toKey равны, возвращённая карта пуста.) Возвращённая карта поддерживается этой картой, поэтому изменения возвращённой карты отражаются в этой карте и наоборот. Возвращённая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращённая карта вызовет IllegalArgumentException.
Эквивалентно subMap(fromKey, true, toKey, false).
- Определено в:
-
subMapв интерфейсеNavigableMap<K,V> - Определено в:
-
subMapв интерфейсеSortedMap<K,V> - Параметры:
-
fromKey— нижняя граница (включительно) ключей возвращённой карты -
toKey— верхняя граница (исключительно) ключей возвращённой карты - Возвращает:
- представление части этой карты, ключи которой находятся в диапазоне от
fromKeyвключительно доtoKeyисключительно - Вызывает исключение:
-
ClassCastException— еслиfromKeyиtoKeyнельзя сравнить друг с другом с помощью компаратора этой карты (или, если у карты нет компаратора, с помощью естественного порядка сортировки). Реализации могут, но не обязаны, вызывать это исключение, еслиfromKeyилиtoKeyнельзя сравнить с ключами, находящимися в карте. -
NullPointerException— еслиfromKeyилиtoKeyравен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null -
IllegalArgumentException— еслиfromKeyбольшеtoKey; либо если сама карта имеет ограниченный диапазон иfromKeyилиtoKeyнаходится за его пределами
headMap
public SortedMap<K,V> headMap(K toKey)
NavigableMaptoKey. Возвращённая карта поддерживается этой картой, поэтому изменения возвращённой карты отражаются в этой карте и наоборот. Возвращённая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращённая карта вызовет IllegalArgumentException.
Эквивалентно headMap(toKey, false).
- Определено в:
-
headMapв интерфейсеNavigableMap<K,V> - Определено в:
-
headMapв интерфейсеSortedMap<K,V> - Параметры:
-
toKey— верхняя граница (исключительно) ключей возвращённой карты - Возвращает:
- представление части этой карты, ключи которой строго меньше
toKey - Вызывает исключение:
-
ClassCastException— еслиtoKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиtoKeyне реализуетComparable). Реализации могут, но не обязаны, вызывать это исключение, еслиtoKeyнельзя сравнить с ключами, находящимися в карте. -
NullPointerException— еслиtoKeyравен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null -
IllegalArgumentException— если сама карта имеет ограниченный диапазон иtoKeyнаходится за его пределами
tailMap
public SortedMap<K,V> tailMap(K fromKey)
NavigableMapfromKey. Возвращённая карта поддерживается этой картой, поэтому изменения возвращённой карты отражаются в этой карте и наоборот. Возвращённая карта поддерживает все необязательные операции с картой, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращённая карта вызовет IllegalArgumentException.
Эквивалентно tailMap(fromKey, true).
- Определено в:
-
tailMapв интерфейсеNavigableMap<K,V> - Определено в:
-
tailMapв интерфейсеSortedMap<K,V> - Параметры:
-
fromKey— нижняя граница (включительно) ключей возвращённой карты - Возвращает:
- представление части этой карты, ключи которой больше или равны
fromKey - Вызывает исключение:
-
ClassCastException— еслиfromKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиfromKeyне реализуетComparable). Реализации могут, но не обязаны, вызывать это исключение, еслиfromKeyнельзя сравнить с ключами, находящимися в карте. -
NullPointerException— еслиfromKeyравен null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null -
IllegalArgumentException— если сама карта имеет ограниченный диапазон иfromKeyнаходится за его пределами
© 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.