Интерфейс SortedSet<E>
- Параметры типа:
-
E- тип элементов, поддерживаемых этим множеством
- Все суперинтерфейсы:
-
Collection<E>,Iterable<E>,Set<E>
- Все известные подинтерфейсы:
NavigableSet<E>
- Все известные реализующие классы:
-
ConcurrentSkipListSet,TreeSet
public interface SortedSet<E> extends Set<E>
Set с дополнительным обеспечением полного упорядочения своих элементов. Элементы упорядочиваются с использованием их естественного порядка, или с помощью Comparator, обычно предоставляемого при создании упорядоченного набора. Итератор набора будет перебирать набор в порядке возрастания элементов. Предоставляется несколько дополнительных операций для использования упорядочения. (Этот интерфейс является аналогом множества SortedMap.) Все элементы, вставленные в упорядоченное множество, должны реализовывать интерфейс Comparable (или приниматься указанным компаратором). Кроме того, все такие элементы должны быть взаимно сравнимыми: e1.compareTo(e2) (или comparator.compare(e1, e2)) не должен выбрасывать ClassCastException для любых элементов e1 и e2 в упорядоченном множестве. Попытки нарушения этого ограничения приведут к тому, что вызов соответствующего метода или конструктора бросит исключение ClassCastException.
Обратите внимание, что порядок, поддерживаемый упорядоченным множеством (предоставлен ли явный компаратор или нет), должен быть совместим с equals, если упорядоченное множество должно правильно реализовывать интерфейс Set. (См. интерфейс Comparable или интерфейс Comparator для точного определения совместимости с equals.) Это происходит потому, что интерфейс Set определен с точки зрения операции equals, но упорядоченное множество выполняет все сравнения элементов с помощью своего метода compareTo (или compare), поэтому два элемента, которые считаются равными этим методом, с точки зрения упорядоченного множества, равны. Поведение упорядоченного множества определено даже если его порядок несовместим с equals; он просто не соблюдает общие соглашения интерфейса Set.
Все классы реализации упорядоченных множеств общего назначения должны предоставлять четыре «стандартных» конструктора: 1) конструктор без аргументов, который создает пустое упорядоченное множество, упорядоченное в соответствии с естественным порядком своих элементов. 2) конструктор с одним аргументом типа Comparator, который создает пустое упорядоченное множество, упорядоченное в соответствии с заданным компаратором. 3) конструктор с одним аргументом типа Collection, который создает новое упорядоченное множество с теми же элементами, что и аргумент, упорядоченное по естественному порядку элементов. 4) конструктор с одним аргументом типа SortedSet, который создает новое упорядоченное множество с теми же элементами и тем же порядком, что и входное упорядоченное множество. Нет способа принудительно выполнить это рекомендацию, так как интерфейсы не могут содержать конструкторы.
Примечание: несколько методов возвращают подмножества с ограниченными диапазонами. Такие диапазоны полуоткрытые, то есть они включают свою нижнюю границу, но не верхнюю (где это применимо). Если вам нужен закрытый диапазон (который включает обе границы), и тип элемента позволяет рассчитать преемника данного значения, просто запросите поддиапазон от lowEndpoint до successor(highEndpoint). Например, предположим, что s — это упорядоченное множество строк. Следующий фрагмент кода получает представление, содержащее все строки в s от low до high, включительно:
SortedSet<String> sub = s.subSet(low, high+"\0");Аналогичный прием можно использовать для генерации открытого диапазона (который не содержит ни одной из границ). Следующий фрагмент кода получает представление, содержащее все строки в
s от low до high, исключая их:SortedSet<String> sub = s.subSet(low+"\0", high);
Этот интерфейс является членом Java Collections Framework.
- Since:
- 1.2
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Comparator<? super E> |
comparator() |
Возвращает компаратор, используемый для упорядочения элементов в этом множестве, или null если это множество использует естественный порядок своих элементов. |
E |
first() |
Возвращает первый (наименьший) элемент, в настоящее время находящийся в этом множестве. |
SortedSet<E> |
headSet |
Возвращает представление части этого множества, элементы которого строго меньше toElement. |
E |
last() |
Возвращает последний (наибольший) элемент, в настоящее время находящийся в этом множестве. |
default Spliterator<E> |
spliterator() |
Создает итератор по элементам в этом упорядоченном множестве. |
SortedSet<E> |
subSet |
Возвращает представление части этого множества, элементы которого находятся в диапазоне от fromElement, включительно, до toElement, исключая верхнюю границу. |
SortedSet<E> |
tailSet |
Возвращает представление части этого множества, элементы которого больше или равны fromElement. |
Методы, объявленные в интерфейсе java.util.Collection
parallelStream, removeIf, stream, toArray
Подробное описание методов
comparator
Comparator<? super E> comparator()
null , если это множество использует естественный порядок сортировки своих элементов.- Возвращает:
- компаратор, используемый для упорядочения элементов в этом множестве, или
null, если это множество использует естественный порядок сортировки элементов
subSet
SortedSet<E> subSet(E fromElement, E toElement)
fromElement, включительно, до toElement, не включительно. (Если fromElement и toElement равны, возвращаемое множество пусто.) Возвращаемое множество поддерживается этим множеством, поэтому изменения в возвращаемом множестве отражаются в этом множестве и наоборот. Возвращаемое множество поддерживает все необязательные операции множества, которые поддерживает это множество. Возвращаемое множество будет выбрасывать IllegalArgumentException при попытке вставки элемента за пределами своего диапазона.
- Параметры:
-
fromElement- нижняя граница (включительно) возвращаемого множества -
toElement- верхняя граница (не включительно) возвращаемого множества - Возвращает:
- представление части этого множества, элементы которого находятся в диапазоне от
fromElement, включительно, доtoElement, не включительно - Исключения:
-
ClassCastException- еслиfromElementиtoElementнельзя сравнить друг с другом с помощью компаратора этого множества (или, если у множества нет компаратора, используя естественный порядок сортировки). Реализации могут, но не обязаны, выбрасывать это исключение, еслиfromElementилиtoElementнельзя сравнить с элементами, которые в настоящее время находятся в множестве. -
NullPointerException- еслиfromElementилиtoElementравно null, а это множество не допускает null-элементы -
IllegalArgumentException- еслиfromElementбольшеtoElement; или если у этого множества есть ограниченный диапазон, иfromElementилиtoElementвыходит за пределы границ диапазона
headSet
SortedSet<E> headSet(E toElement)
toElement. Возвращаемое множество поддерживается этим множеством, поэтому изменения в возвращаемом множестве отражаются в этом множестве и наоборот. Возвращаемое множество поддерживает все необязательные операции множества, которые поддерживает это множество. Возвращаемое множество будет выбрасывать IllegalArgumentException при попытке вставки элемента за пределами своего диапазона.
- Параметры:
-
toElement- верхняя граница (не включительно) возвращаемого множества - Возвращает:
- представление части этого множества, элементы которого строго меньше
toElement - Исключения:
-
ClassCastException- еслиtoElementнесовместим с компаратором этого множества (или, если у множества нет компаратора, еслиtoElementне реализуетComparable). Реализации могут, но не обязаны, выбрасывать это исключение, еслиtoElementнельзя сравнить с элементами, которые в настоящее время находятся в множестве. -
NullPointerException- еслиtoElementравно null, а это множество не допускает null-элементы -
IllegalArgumentException- если у этого множества есть ограниченный диапазон, иtoElementвыходит за пределы границ диапазона
tailSet
SortedSet<E> tailSet(E fromElement)
fromElement. Возвращаемое множество поддерживается этим множеством, поэтому изменения в возвращаемом множестве отражаются в этом множестве и наоборот. Возвращаемое множество поддерживает все необязательные операции множества, которые поддерживает это множество. Возвращаемое множество будет выбрасывать IllegalArgumentException при попытке вставки элемента за пределами своего диапазона.
- Параметры:
-
fromElement- нижняя граница (включительно) возвращаемого множества - Возвращает:
- представление части этого множества, элементы которого больше или равны
fromElement - Исключения:
-
ClassCastException- еслиfromElementнесовместим с компаратором этого множества (или, если у множества нет компаратора, еслиfromElementне реализуетComparable). Реализации могут, но не обязаны, выбрасывать это исключение, еслиfromElementнельзя сравнить с элементами, которые в настоящее время находятся в множестве. -
NullPointerException- еслиfromElementравно null, а это множество не допускает null-элементы -
IllegalArgumentException- если у этого множества есть ограниченный диапазон, иfromElementвыходит за пределы границ диапазона
first
E first()
- Возвращает:
- первый (наименьший) элемент, который в настоящее время находится в этом множестве
- Исключения:
-
NoSuchElementException- если это множество пусто
last
E last()
- Возвращает:
- последний (наибольший) элемент, который в настоящее время находится в этом множестве
- Исключения:
-
NoSuchElementException- если это множество пусто
spliterator
default Spliterator<E> spliterator()
Итератор сообщает о Spliterator.DISTINCT, Spliterator.SORTED и Spliterator.ORDERED. Реализации должны документировать сообщение об дополнительных характеристиках.
Компаратор итератора (см. Spliterator.getComparator()) должен быть null , если компаратор отсортированного множества (см. comparator()) равен null. В противном случае компаратор итератора должен быть таким же, как или налагать тот же общий порядок, что и компаратор отсортированного множества.
- Определяет:
-
spliteratorв интерфейсеCollection<E> - Определяет:
-
spliteratorв интерфейсеIterable<E> - Определяет:
-
spliteratorв интерфейсеSet<E> - Требования реализации:
- Базовая реализация создаёт отложенный итератор из
Iteratorотсортированного множества. Итератор наследует свойства быстрого отказа итератора множества. Компаратор итератора совпадает с компаратором отсортированного множества.Созданный итератор дополнительно сообщает о
Spliterator.SIZED. - Примечание реализации:
- Созданный итератор дополнительно сообщает о
Spliterator.SUBSIZED. - Возвращает:
- итератор по элементам в этом отсортированном множестве
- С:
- 1.8
© 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/SortedSet.html