Интерфейс SortedSet<E>
- Параметры типа:
E- тип элементов, поддерживаемых этим множеством
- Все суперинтерфейсы:
-
Collection<E>,Iterable<E>,SequencedCollection<E>,SequencedSet<E>,Set<E>
- Все известные дочерние интерфейсы:
NavigableSet<E>
- Все известные реализующие классы:
-
ConcurrentSkipListSet,TreeSet
public interface SortedSet<E> extends Set<E>, SequencedSet<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.
- С момента:
- 1.2
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
addFirst |
Бросает исключение UnsupportedOperationException. |
default void |
addLast |
Бросает исключение UnsupportedOperationException. |
Comparator |
comparator() |
Возвращает компаратор, используемый для упорядочивания элементов в этом множестве, или null, если это множество использует естественный порядок своих элементов. |
E |
first() |
Возвращает первый (наименьший) элемент, присутствующий в этом множестве. |
default E |
getFirst() |
Получает первый элемент этого набора. |
default E |
getLast() |
Получает последний элемент этого набора. |
SortedSet |
headSet |
Возвращает представление части этого множества, элементы которого строго меньше toElement. |
E |
last() |
Возвращает последний (наибольший) элемент, присутствующий в этом множестве. |
default E |
removeFirst() |
Удаляет и возвращает первый элемент этого набора (необязательная операция). |
default E |
removeLast() |
Удаляет и возвращает последний элемент этого набора (необязательная операция). |
default SortedSet |
reversed() |
Возвращает упорядоченное по убыванию представление этого набора. |
default Spliterator |
spliterator() |
Создаёт итератор над элементами в этом упорядоченном множестве. |
SortedSet |
subSet |
Возвращает представление части этого множества, элементы которого находятся в диапазоне от fromElement, включительно, до toElement, исключая верхнюю границу. |
SortedSet |
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 над элементами в этом отсортированном множестве. Spliterator сообщает о Spliterator.DISTINCT, Spliterator.SORTED и Spliterator.ORDERED. Реализации должны документировать сообщения об дополнительных характеристиках.
Компаратор Spliterator.getComparator() разделителя должен быть null, если компаратор отсортированного множества (см. comparator()) равен null. В противном случае, компаратор разделителя должен быть таким же, как или накладывать такое же полное упорядочение, как и компаратор отсортированного множества.
- Определено в:
-
spliteratorв интерфейсеCollection<E> - Определено в:
-
spliteratorв интерфейсеIterable<E> - Определено в:
-
spliteratorв интерфейсеSet<E> - Требования к реализации:
- По умолчанию реализация создает отложенную разделитель из
Iteratorотсортированного множества. Разделитель наследует свойства быстрого отказа итератора множества. Компаратор разделителя такой же, как и компаратор отсортированного множества.Созданный
Spliteratorдополнительно сообщает оSpliterator.SIZED. - Примечание реализации:
- Созданный
Spliteratorдополнительно сообщает оSpliterator.SUBSIZED. - Возвращает:
Spliteratorнад элементами в этом отсортированном множестве- С тех пор как:
- 1.8
addFirst
default void addFirst(E e)
UnsupportedOperationException. Порядок встреч, заданный методом сравнения этого множества, определяет положение элементов, поэтому явное позиционирование не поддерживается.- Определено в:
-
addFirstв интерфейсеSequencedCollection<E> - Требования к реализации:
- Реализация в этом интерфейсе всегда выбрасывает
UnsupportedOperationException. - Параметры:
-
e- добавляемый элемент - Исключения:
-
UnsupportedOperationException- всегда - С тех пор как:
- 21
addLast
default void addLast(E e)
UnsupportedOperationException. Порядок встреч, заданный методом сравнения этого множества, определяет положение элементов, поэтому явное позиционирование не поддерживается.- Определено в:
-
addLastв интерфейсеSequencedCollection<E> - Требования к реализации:
- Реализация в этом интерфейсе всегда выбрасывает
UnsupportedOperationException. - Параметры:
-
e- добавляемый элемент. - Исключения:
-
UnsupportedOperationException- всегда - С тех пор как:
- 21
getFirst
default E getFirst()
- Определено в:
-
getFirstв интерфейсеSequencedCollection<E> - Требования к реализации:
- Реализация в этом интерфейсе возвращает результат вызова метода
first. - Возвращает:
- полученный элемент
- Исключения:
-
NoSuchElementException- если эта коллекция пуста - С тех пор как:
- 21
getLast
default E getLast()
- Определено в:
-
getLastв интерфейсеSequencedCollection<E> - Требования к реализации:
- Реализация в этом интерфейсе возвращает результат вызова метода
last. - Возвращает:
- полученный элемент
- Исключения:
-
NoSuchElementException- если эта коллекция пуста - С тех пор как:
- 21
removeFirst
default E removeFirst()
- Указано в:
-
removeFirstв интерфейсеSequencedCollection<E> - Требования к реализации:
- Реализация в этом интерфейсе вызывает метод
firstдля получения первого элемента, затем вызываетremove(element)для удаления элемента и затем возвращает элемент. - Возвращает:
- удаленный элемент
- Исключение:
-
NoSuchElementException- если этот набор пуст -
UnsupportedOperationException- если реализация этого набора не поддерживает эту операцию - С:
- 21
removeLast
default E removeLast()
- Указано в:
-
removeLastв интерфейсеSequencedCollection<E> - Требования к реализации:
- Реализация в этом интерфейсе вызывает метод
lastдля получения последнего элемента, затем вызываетremove(element)для удаления элемента и затем возвращает элемент. - Возвращает:
- удаленный элемент
- Исключение:
-
NoSuchElementException- если этот набор пуст -
UnsupportedOperationException- если реализация этого набора не поддерживает эту операцию - С:
- 21
reversed
default SortedSet<E> reversed()
- Указано в:
-
reversedв интерфейсеSequencedCollection<E> - Указано в:
-
reversedв интерфейсеSequencedSet<E> - Требования к реализации:
- Реализация в этом интерфейсе возвращает представление SortedSet в обратном порядке. Метод
reversed()представления возвращает ссылку на это SortedSet. Другие операции над представлением реализуются через вызовы публичных методов этого SortedSet. Точное соотношение между вызовами представления и вызовами этого SortedSet не определено. Однако операции, зависящие от порядка, обычно ведут себя так, как будто они делегируют соответствующему методу с противоположным направлением. Например, вызовgetFirstна представлении может привести к вызовуgetLastна этом SortedSet. - Возвращает:
- представление этого набора в обратном порядке, как
SortedSet - С:
- 21
© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/SortedSet.html