Интерфейс 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>
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.
- Since:
- 1.2
- См. также:
Краткое описание вложенных классов
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Comparator<? super K> |
comparator() |
Возвращает компаратор, используемый для упорядочивания ключей в этой карте, или null если эта карта использует естественный порядок своих ключей. |
Set<Map.Entry<K, |
entrySet() |
Возвращает представление Set сопоставлений, содержащихся в этой карте. |
K |
firstKey() |
Возвращает первый (наименьший) ключ, который в данный момент находится в этой карте. |
SortedMap<K, |
headMap |
Возвращает представление части этой карты, ключи которой строго меньше toKey. |
Set<K> |
keySet() |
Возвращает Set представление ключей, содержащихся в этой карте. |
K |
lastKey() |
Возвращает последний (наибольший) ключ, который в данный момент находится в этой карте. |
SortedMap<K, |
subMap |
Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey, включительно, до toKey, исключая верхнюю границу. |
SortedMap<K, |
tailMap |
Возвращает представление части этой карты, ключи которой больше или равны fromKey. |
Collection<V> |
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
Подробное описание методов
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. - Определено в:
-
entrySetв интерфейсеMap<K,V> - Возвращает:
- представление набора отображений, содержащихся в этом отображении, отсортированное по возрастанию ключей
© 1993, 2021, 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/17/docs/api/java.base/java/util/SortedMap.html