Интерфейс SortedMap<K, V>
- Type Parameters:
-
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 that further provides a total ordering on its keys. The map is ordered according to the естественному порядку its keys, or by a 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
- See Also:
Краткое описание вложенных классов
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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. - Определено в:
-
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> - Возвращает:
- представление набора соответствий, содержащихся в этом отображении, отсортированных по возрастанию ключа
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
обратный
default SortedMap<K,V> reversed()
- Указано в:
-
reversedв интерфейсеSequencedMap<K,V> - Требования к реализации:
- Реализация в этом интерфейсе возвращает представление отсортированной карты в обратном порядке. Метод
reversed()представления возвращает ссылку на эту отсортированную карту. Другие операции над представлением реализуются посредством вызовов публичных методов этой отсортированной карты. Точное соотношение между вызовами представления и вызовами этой отсортированной карты не определено. Однако операции, чувствительные к порядку, обычно делегируют соответствующий метод с противоположной ориентацией. Например, вызовfirstEntryна представлении приводит к вызовуlastEntryна этой отсортированной карте. - Возвращает:
- представление этой карты в обратном порядке, как
SortedMap - С:
- 21
© 1993, 2023, 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/21/docs/api/java.base/java/util/SortedMap.html