Интерфейс SortedMap<K, V>
- Параметры типа:
K- тип ключей, поддерживаемых этой картойV- тип сопоставленных значений
- Все суперинтерфейсы:
-
Map<K,,V> SequencedMap<K,V>
- Все известные дочерние интерфейсы:
-
ConcurrentNavigableMap<K,,V> NavigableMap<K,V>
- Все известные реализующие классы:
-
ConcurrentSkipListMap,TreeMap
public interface SortedMap<K,V> extends SequencedMap<K,V>
Map, дополнительно предоставляющий полный порядок на своих ключах. Карта упорядочена в соответствии с естественным порядком своих ключей или с помощью Comparator, обычно предоставляемого во время создания отсортированной карты. Этот порядок отражается при итерации по коллекционным представлениям отсортированной карты (возвращаемым методами entrySet, keySet и values). Предоставляются несколько дополнительных операций для использования упорядочения. (Этот интерфейс является аналогом карты для интерфейса SortedSet.) Все ключи, вставленные в отсортированную карту, должны реализовывать интерфейс Comparable (или быть принятыми указанным компаратором). Кроме того, все такие ключи должны быть взаимно сравнимы: k1.compareTo(k2) (или comparator.compare(k1, k2)) не должны выбрасывать исключение ClassCastException для любых ключей k1 и k2 в отсортированной карте. Попытки нарушения этого ограничения приведут к тому, что вызов метода или конструктора выбросит исключение ClassCastException.
Обратите внимание, что порядок, поддерживаемый отсортированной картой (с предоставлением или без явного компаратора), должен быть совместим с equals, если отсортированная карта должна правильно реализовывать интерфейс Map. (См. интерфейс Comparable или интерфейс Comparator для точного определения совместимости с equals). Это связано с тем, что интерфейс Map определяется через операцию equals, но отсортированная карта выполняет все сравнения ключей с помощью метода compareTo (или compare), поэтому два ключа, считающиеся равными этим методом, с точки зрения отсортированной карты, равны. Поведение карты дерева определено даже если её порядок несовместим с equals; она просто не соблюдает общие контракты интерфейса Map.
Все классы реализаций отсортированных карт общего назначения должны предоставлять четыре «стандартных» конструктора. Невозможно заставить их следовать этому правилу, так как требуемые конструкторы не могут быть специфицированы интерфейсами. Ожидаемые «стандартные» конструкторы для всех реализаций отсортированных карт:
- Конструктор без аргументов, который создаёт пустую отсортированную карту, отсортированную в соответствии с естественным порядком своих ключей.
- Конструктор с одним аргументом типа
Comparator, который создаёт пустую отсортированную карту, отсортированную в соответствии с указанным компаратором. - Конструктор с одним аргументом типа
Map, который создаёт новую карту с теми же отображениями ключ-значение, что и у аргумента, отсортированную в соответствии с естественным порядком ключей. - Конструктор с одним аргументом типа
SortedMap, который создаёт новую отсортированную карту с теми же отображениями ключ-значение и тем же порядком, что и у входной отсортированной карты.
Примечание: несколько методов возвращают подкарты с ограниченными диапазонами ключей. Такие диапазоны полуоткрытые, то есть они включают свою нижнюю границу, но не включают свою верхнюю (применимо). Если вам нужен закрытый диапазон (который включает обе границы), и тип ключа позволяет вычисление преемника заданного ключа, просто запросите поддиапазон от lowEndpoint до successor(highEndpoint). Например, предположим, что m - это карта, ключи которой - строки. Следующий фрагмент кода получает представление, содержащее все отображения ключ-значение в m, ключи которых находятся между low и high включительно:
SortedMap<String, V> sub = m.subMap(low, high+"\0");Аналогичный подход можно использовать для создания открытого диапазона (который не включает ни одну из границ). Следующий фрагмент кода получает представление, содержащее все отображения ключ-значение в
m, ключи которых находятся между low и high, исключая границы:SortedMap<String, V> sub = m.subMap(low+"\0", high);
Этот интерфейс является частью Java Collections Framework.
- С момента:
- 1.2
- См. также:
Краткое описание вложенных классов
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Comparator |
comparator() |
Возвращает компаратор, используемый для упорядочения ключей в этой карте, или null, если эта карта использует естественный порядок своих ключей. |
Set |
entrySet() |
Возвращает представление Set отображений, содержащихся в этой карте. |
K |
firstKey() |
Возвращает первый (наименьший) ключ, в данный момент находящийся в этой карте. |
SortedMap |
headMap |
Возвращает представление части этой карты, ключи которой строго меньше toKey. |
Set |
keySet() |
Возвращает представление Set ключей, содержащихся в этой карте. |
K |
lastKey() |
Возвращает последний (наибольший) ключ, в данный момент находящийся в этой карте. |
default V |
putFirst |
Выбрасывает UnsupportedOperationException. |
default V |
putLast |
Выбрасывает UnsupportedOperationException. |
default SortedMap |
reversed() |
Возвращает отсортированное в обратном порядке представление этой карты. |
SortedMap |
subMap |
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey включительно до toKey исключая. |
SortedMap |
tailMap |
Возвращает представление части этой карты, ключи которой больше или равны fromKey. |
Collection |
values() |
Возвращает представление Collection значений, содержащихся в этой карте. |
Методы, объявленные в интерфейсе java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size
Методы, объявленные в интерфейсе java.util.SequencedMap
firstEntry, lastEntry, pollFirstEntry, pollLastEntry, sequencedEntrySet, sequencedKeySet, sequencedValues
Методы
comparator
Comparator<? super K> comparator()
null, если эта карта использует естественный порядок своих ключей.- Возвращает:
- компаратор, используемый для упорядочения ключей в этой карте, или
null, если эта карта использует естественный порядок ключей
subMap
SortedMap<K,V> subMap(K fromKey, K toKey)
fromKey (включительно) до toKey (исключительно). (Если fromKey и toKey равны, возвращаемая карта пустая.) Возвращаемая карта поддерживается этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции карты, которые поддерживает эта карта. Возвращаемая карта будет выбрасывать IllegalArgumentException при попытке вставки ключа за пределами своего диапазона.
- Параметры:
-
fromKey- нижняя граница (включительно) ключей в возвращаемой карте -
toKey- верхняя граница (исключительно) ключей в возвращаемой карте - Возвращает:
- представление части этой карты, ключи которой находятся в диапазоне от
fromKey(включительно) доtoKey(исключительно) - Исключения:
-
ClassCastException- еслиfromKeyиtoKeyнельзя сравнить друг с другом с помощью компаратора этой карты (или, если у карты нет компаратора, с помощью естественного порядка). Реализации могут, но не обязаны, выбрасывать это исключение, еслиfromKeyилиtoKeyнельзя сравнить с ключами, которые в настоящее время находятся в карте. -
NullPointerException- еслиfromKeyилиtoKeyимеет значение null, и эта карта не допускает null ключей -
IllegalArgumentException- еслиfromKeyбольше, чемtoKey; или если у самой этой карты есть ограниченный диапазон, иfromKeyилиtoKeyнаходятся вне границ диапазона
headMap
SortedMap<K,V> headMap(K toKey)
toKey. Возвращаемая карта поддерживается этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции карты, которые поддерживает эта карта. Возвращаемая карта будет выбрасывать IllegalArgumentException при попытке вставки ключа за пределами своего диапазона.
- Параметры:
-
toKey- верхняя граница (исключительно) ключей в возвращаемой карте - Возвращает:
- представление части этой карты, ключи которой строго меньше
toKey - Исключения:
-
ClassCastException- еслиtoKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиtoKeyне реализуетComparable). Реализации могут, но не обязаны, выбрасывать это исключение, еслиtoKeyнельзя сравнить с ключами, которые в настоящее время находятся в карте. -
NullPointerException- еслиtoKeyимеет значение null, и эта карта не допускает null ключей -
IllegalArgumentException- если у самой этой карты есть ограниченный диапазон, иtoKeyнаходится вне границ диапазона
tailMap
SortedMap<K,V> tailMap(K fromKey)
fromKey. Возвращаемая карта поддерживается этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции карты, которые поддерживает эта карта. Возвращаемая карта будет выбрасывать IllegalArgumentException при попытке вставки ключа за пределами своего диапазона.
- Параметры:
-
fromKey- нижняя граница (включительно) ключей в возвращаемой карте - Возвращает:
- представление части этой карты, ключи которой больше или равны
fromKey - Исключения:
-
ClassCastException- еслиfromKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиfromKeyне реализуетComparable). Реализации могут, но не обязаны, выбрасывать это исключение, еслиfromKeyнельзя сравнить с ключами, которые в настоящее время находятся в карте. -
NullPointerException- еслиfromKeyимеет значение null, и эта карта не допускает null ключей -
IllegalArgumentException- если у самой этой карты есть ограниченный диапазон, иfromKeyнаходится вне границ диапазона
firstKey
K firstKey()
- Возвращает:
- первый (наименьший) ключ, присутствующий в этой карте
- Исключения:
-
NoSuchElementException- если эта карта пуста
lastKey
K lastKey()
- Возвращает:
- последний (наибольший) ключ, присутствующий в этой карте
- Исключения:
-
NoSuchElementException- если эта карта пуста
keySet
Set<K> keySet()
Set ключей, содержащихся в этой карте. Итератор набора возвращает ключи в порядке возрастания. Набор поддерживается картой, поэтому изменения в карте отражаются в наборе, и наоборот. Если карта изменяется во время итерации по набору (кроме операций самого итератора remove), результаты итерации не определены. Набор поддерживает удаление элементов, что удаляет соответствующее отображение из карты, посредством операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Он не поддерживает операции add или addAll.values
Collection<V> values()
Collection значений, содержащихся в этой карте. Итератор коллекции возвращает значения в порядке возрастания соответствующих ключей. Коллекция поддерживается картой, поэтому изменения в карте отражаются в коллекции, и наоборот. Если карта изменяется во время итерации по коллекции (кроме операций самого итератора remove), результаты итерации не определены. Коллекция поддерживает удаление элементов, что удаляет соответствующее отображение из карты, посредством операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Она не поддерживает операции add или addAll.entrySet
Set<Map.Entry<K,V>> entrySet()
Set отображений, содержащихся в этой карте. Итератор набора возвращает отображения в порядке возрастания ключей. Набор поддерживается картой, поэтому изменения в карте отражаются в наборе, и наоборот. Если карта изменяется во время итерации по набору (кроме операций самого итератора remove или операции setValue на записи карты, возвращенной итератором), результаты итерации не определены. Набор поддерживает удаление элементов, что удаляет соответствующее отображение из карты, посредством операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Он не поддерживает операции add или addAll.putFirst
default V putFirst(K k, V v)
UnsupportedOperationException. Порядок встреч, индуцированный методом сравнения этой карты, определяет позицию отображений, поэтому явное позиционирование не поддерживается.- Определено в:
-
putFirstв интерфейсеSequencedMap<K,V> - Требования к реализации:
- Реализация в этом интерфейсе всегда выбрасывает
UnsupportedOperationException. - Параметры:
-
k- ключ -
v- значение - Возвращает:
- значение, которое ранее было связано с k, или null, если такого не было
- Исключения:
-
UnsupportedOperationException- всегда - С тех пор:
- 21
putLast
default V putLast(K k, V v)
UnsupportedOperationException. Порядок встреч, заданный методом сравнения этой карты, определяет положение сопоставлений, поэтому явное позиционирование не поддерживается.- Указано в:
-
putLastв интерфейсеSequencedMap<K,V> - Требования к реализации:
- Реализация в этом интерфейсе всегда выбрасывает
UnsupportedOperationException. - Параметры:
-
k- ключ -
v- значение - Возвращает:
- значение, ранее связанное с k, или null, если нет
- Выбрасывает:
-
UnsupportedOperationException- всегда - С:
- 21
reversed
default SortedMap<K,V> reversed()
- Указано в:
-
reversedв интерфейсеSequencedMap<K,V> - Требования к реализации:
- Реализация в этом интерфейсе возвращает представление SortedMap в обратном порядке. Метод
reversed()представления возвращает ссылку на этот SortedMap. Другие операции с представлением реализуются с помощью вызовов общедоступных методов этого SortedMap. Точное соотношение между вызовами представления и вызовами этого SortedMap не определено. Однако операции, зависящие от порядка, обычно ведут себя так, как если бы они делегировали соответствующий метод с противоположной ориентацией. Например, вызовfirstEntryдля представления может привести к вызовуlastEntryдля этого SortedMap. - Возвращает:
- представление этой карты в обратном порядке, как
SortedMap - С:
- 21
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/SortedMap.html