Интерфейс SortedSet<E>
- Параметры типа:
-
E- тип элементов, поддерживаемых этим множеством
- Все суперинтерфейсы:
-
Collection<E>,Iterable<E>,Set<E>
- Все известные дочерние интерфейсы:
NavigableSet<E>
- Все известные реализующие классы:
-
ConcurrentSkipListSet,TreeSet
public interface SortedSet<E> extends Set<E>
A 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
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Comparator<? super E> | comparator() | Возвращает компаратор, используемый для упорядочивания элементов в этом множестве, или |
E | first() | Возвращает первый (наименьший) элемент, в настоящее время находящийся в этом множестве. |
SortedSet<E> | headSet(E toElement) | Возвращает представление части этого множества, элементы которого строго меньше |
E | last() | Возвращает последний (наибольший) элемент, в настоящее время находящийся в этом множестве. |
default Spliterator<E> | spliterator() | Создаёт |
SortedSet<E> | subSet(E fromElement,
E toElement) | Возвращает представление части этого множества, элементы которого находятся в диапазоне от |
SortedSet<E> | tailSet(E 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.DISTINCT, Spliterator.SORTED и Spliterator.ORDERED. Реализации должны документировать сообщение об дополнительных характеристиках.
Компаратор итератора (см. Spliterator.getComparator()) должен быть null если компаратор отсортированного набора (см. comparator()) равен null. В противном случае компаратор итератора должен быть таким же, как или накладывать такое же полное упорядочение, как компаратор отсортированного набора.
- Определено в:
-
spliteratorв интерфейсеCollection<E> - Определено в:
-
spliteratorв интерфейсеIterable<E> - Определено в:
-
spliteratorв интерфейсеSet<E> - Требования к реализации:
- Стандартная реализация создает поздне-связанный итератор из
Iteratorотсортированного набора. Итератор наследует свойства быстрого отказа итератора набора. Компаратор итератора такой же, как компаратор отсортированного набора.Созданный итератор дополнительно сообщает о
Spliterator.SIZED. - Примечание для реализации:
- Созданный итератор дополнительно сообщает о
Spliterator.SUBSIZED. - Возвращает:
- итератор по элементам этого отсортированного набора
- С момента:
- 1.8
© 1993, 2020, 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/11/docs/api/java.base/java/util/SortedSet.html