Spec-Zone.ru › OpenJDK 25

Класс TreeMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
java.util.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
См. также:
  • Map
  • HashMap
  • Hashtable
  • Comparable
  • Comparator
  • Collection
  • Сериализованное представление

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

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

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

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

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

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

Модификатор и тип Метод Описание
Map.Entry<K,V> ceilingEntry(K key)
Возвращает сопоставление ключ-значение, связанное с наименьшим ключом, большим или равным заданному ключу, либо null, если такого ключа нет.
K ceilingKey(K key)
Возвращает наименьший ключ, больший или равный заданному ключу, либо null, если такого ключа нет.
void clear()
Удаляет из этой карты все сопоставления.
Object clone()
Возвращает поверхностную копию этого экземпляра TreeMap.
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), пытается вычислить его значение с помощью заданной функции сопоставления и добавляет его в эту карту, если результат не равен 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.
NavigableMap<K,V> descendingMap()
Возвращает представление сопоставлений этой карты в обратном порядке.
Set<Map.Entry<K,V>> entrySet()
Возвращает представление сопоставлений этой карты в виде Set.
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, если в этой карте нет сопоставления для ключа.
SortedMap<K,V> headMap(K toKey)
Возвращает представление части этой карты, ключи которой строго меньше toKey.
NavigableMap<K,V> headMap(K toKey, boolean inclusive)
Возвращает представление части этой карты, ключи которой меньше (или равны, если inclusive равно true) toKey.
Map.Entry<K,V> higherEntry(K key)
Возвращает сопоставление ключ-значение, связанное с наименьшим ключом, строго большим заданного ключа, либо null, если такого ключа нет.
K higherKey(K key)
Возвращает наименьший ключ, строго больший заданного ключа, либо null, если такого ключа нет.
Set<K> keySet()
Возвращает представление ключей этой карты в виде Set.
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)
Если указанный ключ ещё не связан со значением или связан со значением null, связывает его с заданным ненулевым значением (необязательная операция).
NavigableSet<K> navigableKeySet()
Возвращает представление ключей этой карты в виде NavigableSet.
Map.Entry<K,V> pollFirstEntry()
Удаляет и возвращает сопоставление ключ-значение, связанное с наименьшим ключом в этой карте, или null, если карта пуста (необязательная операция).
Map.Entry<K,V> pollLastEntry()
Удаляет и возвращает сопоставление ключ-значение, связанное с наибольшим ключом в этой карте, или null, если карта пуста (необязательная операция).
V put(K key, V value)
Связывает указанное значение с указанным ключом в этой карте.
void putAll(Map<? extends K, ? extends V> map)
Копирует все сопоставления из указанной карты в эту карту.
V putFirst(K k, V v)
Выбрасывает UnsupportedOperationException.
V putLast(K k, V v)
Выбрасывает UnsupportedOperationException.
V remove(Object key)
Удаляет сопоставление для этого ключа из этой TreeMap, если оно существует.
int size()
Возвращает количество сопоставлений ключ-значение в этой карте.
NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey до toKey.
SortedMap<K,V> subMap(K fromKey, K toKey)
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey (включительно) до toKey (исключительно).
SortedMap<K,V> tailMap(K fromKey)
Возвращает представление части этой карты, ключи которой больше или равны fromKey.
NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
Возвращает представление части этой карты, ключи которой больше (или равны, если inclusive равно true) fromKey.
Collection<V> values()
Возвращает представление значений этой карты в виде Collection.

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

equals, hashCode, isEmpty, toString

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

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

Методы, объявленные в интерфейсе 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

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

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()
Описание скопировано из интерфейса: 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

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, пытается вычислить новое отображение, используя ключ и его текущее отображаемое значение (необязательная операция).

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

clear

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

clone

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

firstEntry

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

lastEntry

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

pollFirstEntry

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

pollLastEntry

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

lowerEntry

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

lowerKey

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

floorEntry

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

floorKey

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

ceilingEntry

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

ceilingKey

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

higherEntry

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

higherKey

public K higherKey(K key)
Описание скопировано из интерфейса: NavigableMap
Возвращает наименьший ключ, строго больший заданного ключа, или null, если такого ключа нет.
Определено в:
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 не поддерживаются.

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

navigableKeySet

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

descendingKeySet

public NavigableSet<K> descendingKeySet()
Описание скопировано из интерфейса: NavigableMap
Возвращает представление ключей этой карты в виде NavigableSet с обратным порядком сортировки. Итератор множества возвращает ключи в порядке убывания. Множество связано с картой, поэтому изменения карты отражаются в множестве, и наоборот. Если карта изменяется во время итерации по множеству (кроме изменений, выполненных собственной операцией 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 не поддерживаются.

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

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 не поддерживаются.

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

descendingMap

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

Возвращённая карта имеет порядок сортировки, эквивалентный 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)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey до 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)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой меньше (или равны, если inclusive равно 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)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой больше (или равны, если inclusive равно 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)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey включительно до 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)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой строго меньше toKey. Возвращённая карта связана с этой картой, поэтому изменения возвращённой карты отражаются в этой карте, и наоборот. Возвращённая карта поддерживает все необязательные операции с картами, поддерживаемые этой картой.

При попытке вставить ключ за пределами диапазона возвращённая карта вызовет 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)
Описание скопировано из интерфейса: NavigableMap
Возвращает представление части этой карты, ключи которой больше или равны fromKey. Возвращённая карта связана с этой картой, поэтому изменения возвращённой карты отражаются в этой карте, и наоборот. Возвращённая карта поддерживает все необязательные операции с картами, поддерживаемые этой картой.

При попытке вставить ключ за пределами диапазона возвращённая карта вызовет 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 находится за его границами

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/TreeMap.html

Spec-Zone.ru

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