Интерфейс 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. (Точное определение понятия согласован с equals см. в интерфейсе Comparable или Comparator.) Это связано с тем, что интерфейс Map определен через операцию equals, тогда как отсортированная карта выполняет все сравнения ключей с помощью метода compareTo (или compare), поэтому два ключа, признанные равными этим методом, считаются равными с точки зрения отсортированной карты. Поведение TreeMap определено и в том случае, если ее порядок не согласован с 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. |
Методы, объявленные в интерфейсе Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
clear() |
Удаляет все сопоставления из этой карты (необязательная операция). |
default V |
compute |
Пытается вычислить сопоставление для указанного ключа и его текущего отображаемого значения или null, если текущего сопоставления нет (необязательная операция). |
default V |
computeIfAbsent |
Если указанному ключу еще не сопоставлено значение (или ему сопоставлено null), пытается вычислить его значение с помощью заданной функции отображения и добавляет его в эту карту, если только результат не равен null (необязательная операция). |
default V |
computeIfPresent |
Если для указанного ключа присутствует ненулевое значение, пытается вычислить новое сопоставление с учетом ключа и текущего отображаемого значения (необязательная операция). |
boolean |
containsKey |
Возвращает true, если эта карта содержит сопоставление для указанного ключа. |
boolean |
containsValue |
Возвращает true, если в этой карте один или несколько ключей сопоставлены с указанным значением. |
boolean |
equals |
Сравнивает указанный объект с этой картой на равенство. |
default void |
forEach |
Выполняет заданное действие для каждой записи этой карты, пока не будут обработаны все записи или действие не выбросит исключение. |
V |
get |
Возвращает значение, сопоставленное указанному ключу, или null, если в этой карте нет сопоставления для ключа. |
default V |
getOrDefault |
Возвращает значение, сопоставленное указанному ключу, или defaultValue, если в этой карте нет сопоставления для ключа. |
int |
hashCode() |
Возвращает хеш-код этой карты. |
boolean |
isEmpty() |
Возвращает true, если эта карта не содержит сопоставлений ключей и значений. |
default V |
merge |
Если указанному ключу еще не сопоставлено значение или ему сопоставлено null, сопоставляет его с заданным ненулевым значением (необязательная операция). |
V |
put |
Сопоставляет указанное значение с указанным ключом в этой карте (необязательная операция). |
void |
putAll |
Копирует все сопоставления из указанной карты в эту карту (необязательная операция). |
default V |
putIfAbsent |
Если указанному ключу еще не сопоставлено значение (или ему сопоставлено null), сопоставляет его с заданным значением и возвращает null; в противном случае возвращает текущее значение (необязательная операция). |
V |
remove |
Удаляет из этой карты сопоставление для ключа, если оно присутствует (необязательная операция). |
default boolean |
remove |
Удаляет запись для указанного ключа, только если ему в данный момент сопоставлено указанное значение (необязательная операция). |
default V |
replace |
Заменяет запись для указанного ключа, только если ему в данный момент сопоставлено какое-либо значение (необязательная операция). |
default boolean |
replace |
Заменяет запись для указанного ключа, только если ему в данный момент сопоставлено указанное значение (необязательная операция). |
default void |
replaceAll |
Заменяет значение каждой записи результатом вызова заданной функции для этой записи, пока не будут обработаны все записи или функция не выбросит исключение (необязательная операция). |
int |
size() |
Возвращает количество сопоставлений ключей и значений в этой карте. |
Методы, объявленные в интерфейсе SequencedMap
firstEntry, lastEntry, pollFirstEntry, pollLastEntry, sequencedEntrySet, sequencedKeySet, sequencedValues | Модификатор и тип | Метод | Описание |
|---|---|---|
default Map.Entry |
firstEntry() |
Возвращает первое сопоставление ключа и значения в этой карте или null, если карта пуста. |
default Map.Entry |
lastEntry() |
Возвращает последнее сопоставление ключа и значения в этой карте или null, если карта пуста. |
default Map.Entry |
pollFirstEntry() |
Удаляет и возвращает первое сопоставление ключа и значения в этой карте или null, если карта пуста (необязательная операция). |
default Map.Entry |
pollLastEntry() |
Удаляет и возвращает последнее сопоставление ключа и значения в этой карте или null, если карта пуста (необязательная операция). |
default SequencedSet |
sequencedEntrySet() |
Возвращает представление SequencedSet для entrySet этой карты. |
default SequencedSet |
sequencedKeySet() |
Возвращает представление SequencedSet для keySet этой карты. |
default SequencedCollection |
sequencedValues() |
Возвращает представление SequencedCollection для коллекции values этой карты. |
Подробное описание методов
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, а эта карта не допускает нулевые ключи -
IllegalArgumentException— еслиfromKeyбольшеtoKey; или если диапазон самой карты ограничен, аfromKeyилиtoKeyнаходится за его пределами
headMap
SortedMap<K,V> headMap(K toKey)
toKey. Возвращаемая карта связана с этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции с картами, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращаемая карта выбросит IllegalArgumentException.
- Параметры:
-
toKey— верхняя граница (исключительно) ключей возвращаемой карты - Возвращает:
- представление части этой карты, ключи которой строго меньше
toKey - Выбрасывает:
-
ClassCastException— еслиtoKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиtoKeyне реализуетComparable). Реализации могут выбрасывать это исключение, еслиtoKeyнельзя сравнить с ключами, имеющимися в карте, но не обязаны этого делать. -
NullPointerException— еслиtoKeyравно null, а эта карта не допускает нулевые ключи -
IllegalArgumentException— если диапазон самой карты ограничен, аtoKeyнаходится за его пределами
tailMap
SortedMap<K,V> tailMap(K fromKey)
fromKey. Возвращаемая карта связана с этой картой, поэтому изменения в возвращаемой карте отражаются в этой карте, и наоборот. Возвращаемая карта поддерживает все необязательные операции с картами, поддерживаемые этой картой. При попытке вставить ключ за пределами диапазона возвращаемая карта выбросит IllegalArgumentException.
- Параметры:
-
fromKey— нижняя граница (включительно) ключей возвращаемой карты - Возвращает:
- представление части этой карты, ключи которой больше или равны
fromKey - Выбрасывает:
-
ClassCastException— еслиfromKeyнесовместим с компаратором этой карты (или, если у карты нет компаратора, еслиfromKeyне реализуетComparable). Реализации могут выбрасывать это исключение, еслиfromKeyнельзя сравнить с ключами, имеющимися в карте, но не обязаны этого делать. -
NullPointerException— еслиfromKeyравно 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.