Интерфейс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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. |
Методы, объявленные в интерфейсе java.util.Collection
parallelStream, removeIf, stream, 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