Класс 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, предоставленного при создании карты; это зависит от используемого конструктора. Эта реализация гарантирует логарифмическую временную сложность O(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 Collections Framework.
- Начиная с версии:
- 1.2
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе AbstractMap
AbstractMap.SimpleEntry<K, V>, AbstractMap.SimpleImmutableEntry<K, V>
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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 |
Возвращает представление части этой карты, ключи которой меньше (или равны, если inclusive равно true) toKey. |
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 |
Возвращает представление части этой карты, ключи которой больше (или равны, если inclusive равно true) fromKey. |
Collection |
values() |
Возвращает представление значений этой карты в виде Collection. |
Методы, объявленные в классе AbstractMap
equals, hashCode, isEmpty, toString
Методы, объявленные в интерфейсе Map
equals, forEach, getOrDefault, hashCode, isEmpty, putIfAbsent, remove, replace, replace, replaceAll
Методы, объявленные в интерфейсе NavigableMap
reversed
Методы, объявленные в интерфейсе SequencedMap
sequencedEntrySet, sequencedKeySet, sequencedValues
Подробное описание конструкторов
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)
NavigableMapinclusive равно true) toKey. Возвращённая карта связана с этой картой, поэтому изменения возвращённой карты отражаются в этой карте, и наоборот. Возвращённая карта поддерживает все необязательные операции с картами, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращённая карта вызовет IllegalArgumentException.
- Определено в:
-
headMapв интерфейсеNavigableMap<K,V> - Параметры:
-
toKey— верхняя граница ключей возвращённой карты -
inclusive—true, если верхнюю границу следует включить в возвращённое представление - Возвращает:
- представление части этой карты, ключи которой меньше (или равны, если
inclusiveравно true)toKey - Вызывает исключение:
-
ClassCastException— еслиtoKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиtoKeyне реализуетComparable). Реализации могут, но не обязаны, вызывать это исключение, еслиtoKeyнельзя сравнить с ключами, находящимися в данный момент в карте. -
NullPointerException— еслиtoKeyравно null, а в этой карте используется естественный порядок сортировки или её компаратор не допускает ключи null -
IllegalArgumentException— если диапазон самой карты ограничен иtoKeyнаходится за его границами - Начиная с версии:
- 1.6
tailMap
public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
NavigableMapinclusive равно true) fromKey. Возвращённая карта связана с этой картой, поэтому изменения возвращённой карты отражаются в этой карте, и наоборот. Возвращённая карта поддерживает все необязательные операции с картами, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращённая карта вызовет IllegalArgumentException.
- Определено в:
-
tailMapв интерфейсеNavigableMap<K,V> - Параметры:
-
fromKey— нижняя граница ключей возвращённой карты -
inclusive—true, если нижнюю границу следует включить в возвращённое представление - Возвращает:
- представление части этой карты, ключи которой больше (или равны, если
inclusiveравно true)fromKey - Вызывает исключение:
-
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/TreeMap.html