Spec-Zone.ru › OpenJDK 21

Интерфейс 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()
Создаёт 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 (см. Spliterator.getComparator()) должен быть null , если компаратор отсортированного набора (см. comparator()) равен null. В противном случае компаратор Spliterator должен быть таким же, как или накладывать такое же полное упорядочение, как компаратор отсортированного набора.

Определено в:
spliterator в интерфейсе Collection<E>
Определено в:
spliterator в интерфейсе Iterable<E>
Определено в:
spliterator в интерфейсе Set<E>
Требования к реализации:
Умолчательная реализация создает позднесвязываемый Spliterator из Iterator отсортированного набора. Spliterator наследует свойства fail-fast итератора набора. Компаратор Spliterator такой же, как у компаратора отсортированного набора.

Созданный 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, 2023, 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/21/docs/api/java.base/java/util/SortedSet.html

Spec-Zone.ru

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