Spec-Zone.ru › OpenJDK 25

Интерфейс 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
См. также:
  • Set
  • TreeSet
  • SortedMap
  • Collection
  • Comparable
  • Comparator
  • ClassCastException

Краткое описание методов

Модификатор и тип Метод Описание
default void addFirst(E e)
Выбрасывает UnsupportedOperationException.
default void addLast(E e)
Выбрасывает UnsupportedOperationException.
Comparator<? super E> comparator()
Возвращает компаратор, используемый для упорядочивания элементов этого множества, или null, если множество использует естественный порядок своих элементов.
E first()
Возвращает первый (наименьший) элемент, содержащийся в этом множестве в данный момент.
default E getFirst()
Возвращает первый элемент этой коллекции.
default E getLast()
Возвращает последний элемент этой коллекции.
SortedSet<E> headSet(E toElement)
Возвращает представление части этого множества, элементы которой строго меньше toElement.
E last()
Возвращает последний (наибольший) элемент, содержащийся в этом множестве в данный момент.
default E removeFirst()
Удаляет и возвращает первый элемент этой коллекции (необязательная операция).
default E removeLast()
Удаляет и возвращает последний элемент этой коллекции (необязательная операция).
default SortedSet<E> reversed()
Возвращает представление этой коллекции в обратном порядке (представление).
default Spliterator<E> spliterator()
Создаёт Spliterator для элементов этого отсортированного множества.
SortedSet<E> subSet(E fromElement, E toElement)
Возвращает представление части этого множества, элементы которой находятся в диапазоне от fromElement включительно до toElement исключительно.
SortedSet<E> tailSet(E fromElement)
Возвращает представление части этого множества, элементы которой больше или равны fromElement.

Методы, объявленные в интерфейсе Collection

parallelStream, removeIf, stream, toArray

Методы, объявленные в интерфейсе Iterable

forEach

Методы, объявленные в интерфейсе Set

add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, 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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/SortedSet.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API