Spec-Zone.ru › OpenJDK 24

Интерфейс 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
См. также:
  • 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()
Создаёт итератор над элементами в этом упорядоченном множестве.
SortedSet<E> subSet(E fromElement, E toElement)
Возвращает представление части этого множества, элементы которого находятся в диапазоне от fromElement, включительно, до toElement, исключая верхнюю границу.
SortedSet<E> tailSet(E fromElement)
Возвращает представление части этого множества, элементы которого больше или равны fromElement.

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

parallelStream, removeIf, stream, toArray

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

forEach

Методы, объявленные в интерфейсе java.util.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 отсортированного множества. Разделитель наследует свойства быстрого отказа итератора множества. Компаратор разделителя такой же, как и компаратор отсортированного множества.

Созданный 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

Spec-Zone.ru

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