Интерфейс 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. (Точное определение понятия согласован с equals см. в интерфейсе Comparable или Comparator.) Это необходимо, поскольку интерфейс 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() |
Создаёт Spliterator для элементов этого отсортированного множества. |
SortedSet |
subSet |
Возвращает представление части этого множества, элементы которой находятся в диапазоне от fromElement включительно до toElement исключительно. |
SortedSet |
tailSet |
Возвращает представление части этого множества, элементы которой больше или равны fromElement. |
Методы, объявленные в интерфейсе Collection
parallelStream, removeIf, stream, toArray | Модификатор и тип | Метод | Описание |
|---|---|---|
default Stream |
parallelStream() |
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция. |
default boolean |
removeIf |
Удаляет из этой коллекции все элементы, удовлетворяющие заданному предикату (необязательная операция). |
default Stream |
stream() |
Возвращает последовательный Stream, источником которого является эта коллекция. |
default <T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator. |
Методы, объявленные в интерфейсе Iterable
forEach | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEach |
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не выбросит исключение. |
Методы, объявленные в интерфейсе Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
add |
Добавляет указанный элемент в это множество, если он ещё не присутствует (необязательная операция). |
boolean |
addAll |
Добавляет все элементы указанной коллекции в это множество, если их там ещё нет (необязательная операция). |
void |
clear() |
Удаляет все элементы из этого множества (необязательная операция). |
boolean |
contains |
Возвращает true, если это множество содержит указанный элемент. |
boolean |
containsAll |
Возвращает true, если это множество содержит все элементы указанной коллекции. |
boolean |
equals |
Сравнивает указанный объект с этим множеством на равенство. |
int |
hashCode() |
Возвращает значение хеш-кода этого множества. |
boolean |
isEmpty() |
Возвращает true, если это множество не содержит элементов. |
Iterator |
iterator() |
Возвращает итератор по элементам этого множества. |
boolean |
remove |
Удаляет указанный элемент из этого множества, если он присутствует (необязательная операция). |
boolean |
removeAll |
Удаляет из этого множества все элементы, содержащиеся в указанной коллекции (необязательная операция). |
boolean |
retainAll |
Оставляет в этом множестве только элементы, содержащиеся в указанной коллекции (необязательная операция). |
int |
size() |
Возвращает количество элементов в этом множестве (его мощность). |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этого множества. |
<T> T[] |
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отсортированного множества. Сплитератор наследует свойства fail-fast итератора множества. Компаратор сплитератора совпадает с компаратором отсортированного множества.Созданный
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.