Интерфейс SortedMap<K,V>
- Параметры типа:
-
K- тип ключей, поддерживаемых этой картой -
V- тип сопоставленных значений
- Все суперинтерфейсы:
Map<K,V>
- Все известные подинтерфейсы:
-
ConcurrentNavigableMap<K,V>,NavigableMap<K,V>
- Все известные реализующие классы:
-
ConcurrentSkipListMap,TreeMap
public interface SortedMap<K,V> extends Map<K,V>
A 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
- См. также:
-
Map,TreeMap,SortedSet,Comparator,Comparable,Collection,ClassCastException
Вложенные классы
Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.Map
Map.Entry<K,V> Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Comparator<? super K> | comparator() | Возвращает компаратор, используемый для упорядочивания ключей в этой карте, или |
Set<Map.Entry<K,V>> | entrySet() | Возвращает представление |
K | firstKey() | Возвращает первый (наименьший) ключ, который в данный момент находится в этой карте. |
SortedMap<K,V> | headMap(K toKey) | Возвращает представление части этой карты, ключи которой строго меньше |
Set<K> | keySet() | Возвращает представление |
K | lastKey() | Возвращает последний (наибольший) ключ, который в данный момент находится в этой карте. |
SortedMap<K,V> | subMap(K fromKey,
K toKey) | Возвращает представление части этой карты, ключи которой находятся в диапазоне от |
SortedMap<K,V> | tailMap(K fromKey) | Возвращает представление части этой карты, ключи которой больше или равны |
Collection<V> | values() | Возвращает представление |
Методы, объявленные в интерфейсе 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 Методы
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.
- Определено в:
-
keySetв интерфейсеMap<K,V> - Возвращает:
- представление набора ключей, содержащихся в этой карте, отсортированных по возрастанию
values
Collection<V> values()
Возвращает представление Collection значений, содержащихся в этой карте. Итератор коллекции возвращает значения в порядке возрастания соответствующих ключей. Коллекция опирается на карту, поэтому изменения в карте отражаются в коллекции и наоборот. Если карта изменяется во время итерации по коллекции (кроме операции remove самого итератора), результаты итерации не определены. Коллекция поддерживает удаление элементов, что удаляет соответствующее отображение из карты, посредством операций Iterator.remove, Collection.remove, removeAll, retainAll и clear. Она не поддерживает операции add или addAll.
- Определено в:
-
valuesв интерфейсеMap<K,V> - Возвращает:
- представление коллекции значений, содержащихся в этой карте, отсортированных по возрастанию ключей
entrySet
Set<Map.Entry<K,V>> entrySet()
Возвращает представление Set отображений, содержащихся в этой карте. Итератор набора возвращает элементы в порядке возрастания ключей. Набор опирается на карту, поэтому изменения в карте отражаются в наборе и наоборот. Если карта изменяется во время итерации по набору (кроме операции remove самого итератора, или операции setValue на элементе карты, возвращенном итератором), результаты итерации не определены. Набор поддерживает удаление элементов, что удаляет соответствующее отображение из карты, посредством операций Iterator.remove, Set.remove, removeAll, retainAll и clear. Он не поддерживает операции add или addAll.
© 1993, 2020, 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/11/docs/api/java.base/java/util/SortedMap.html