Интерфейс 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.

Все универсальные классы-реализации отсортированных карт должны предоставлять четыре «стандартных» конструктора. Однако принудительное применение этого правила невозможно, так как требуемые конструкторы не могут быть указаны интерфейсами. Ожидаемые «стандартные» конструкторы для всех реализаций отсортированных карт:

  1. Конструктор без аргументов, который создает пустую отсортированную карту, отсортированную в соответствии с естественным порядком своих ключей.
  2. Конструктор с одним аргументом типа Comparator, который создает пустую отсортированную карту, отсортированную в соответствии с указанным компаратором.
  3. Конструктор с одним аргументом типа Map, который создает новую карту с теми же отображениями ключ-значение, что и ее аргумент, отсортированную в соответствии с естественным порядком ключей.
  4. Конструктор с одним аргументом типа 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()

Возвращает компаратор, используемый для упорядочивания ключей в этой карте, или null, если эта карта использует естественный порядок своих ключей.

Set<Map.Entry<K,​V>> entrySet()

Возвращает представление Set отображений, содержащихся в этой карте.

K firstKey()

Возвращает первый (наименьший) ключ, который в данный момент находится в этой карте.

SortedMap<K,​V> headMap​(K toKey)

Возвращает представление части этой карты, ключи которой строго меньше toKey.

Set<K> keySet()

Возвращает представление Set ключей, содержащихся в этой карте.

K lastKey()

Возвращает последний (наибольший) ключ, который в данный момент находится в этой карте.

SortedMap<K,​V> subMap​(K fromKey, K toKey)

Возвращает представление части этой карты, ключи которой находятся в диапазоне от fromKey, включительно, до toKey, не включительно.

SortedMap<K,​V> tailMap​(K fromKey)

Возвращает представление части этой карты, ключи которой больше или равны 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, 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

Spec-Zone .ru
спецификации, руководства, описания, API