Spec-Zone.ru › OpenJDK 27

Интерфейс 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
Модификатор и тип Метод Описание
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция.
default boolean removeIf(Predicate<? super E> filter)
Удаляет из этой коллекции все элементы, удовлетворяющие заданному предикату (необязательная операция).
default Stream<E> stream()
Возвращает последовательный Stream, источником которого является эта коллекция.
default <T> T[] toArray(IntFunction<T[]> generator)
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator.

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

forEach
Модификатор и тип Метод Описание
default void forEach(Consumer<? super E> action)
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не выбросит исключение.

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

add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
Модификатор и тип Метод Описание
boolean add(E e)
Добавляет указанный элемент в это множество, если он ещё не присутствует (необязательная операция).
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в это множество, если их там ещё нет (необязательная операция).
void clear()
Удаляет все элементы из этого множества (необязательная операция).
boolean contains(Object o)
Возвращает true, если это множество содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает true, если это множество содержит все элементы указанной коллекции.
boolean equals(Object o)
Сравнивает указанный объект с этим множеством на равенство.
int hashCode()
Возвращает значение хеш-кода этого множества.
boolean isEmpty()
Возвращает true, если это множество не содержит элементов.
Iterator<E> iterator()
Возвращает итератор по элементам этого множества.
boolean remove(Object o)
Удаляет указанный элемент из этого множества, если он присутствует (необязательная операция).
boolean removeAll(Collection<?> c)
Удаляет из этого множества все элементы, содержащиеся в указанной коллекции (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет в этом множестве только элементы, содержащиеся в указанной коллекции (необязательная операция).
int size()
Возвращает количество элементов в этом множестве (его мощность).
Object[] toArray()
Возвращает массив, содержащий все элементы этого множества.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого множества; тип возвращаемого массива во время выполнения совпадает с типом указанного массива.

Подробное описание методов

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, 2026, 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.

Spec-Zone.ru

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