-
- 参数类型
-
E
- 由此集合维护的元素的类型
- All Superinterfaces:
-
Collection<E>
,Iterable<E>
,Set<E>
- All Known Subinterfaces:
-
NavigableSet<E>
- 所有已知实现类:
-
ConcurrentSkipListSet
,TreeSet
public interface SortedSet<E> extends Set<E>
ASet
进一步提供了其元素的总排序 。 元素使用其natural ordering或Comparator
进行排序,通常在排序集创建时提供。 集合的迭代器将以递增的元素顺序遍历集合。 提供了几个额外的操作来利用订购。 (此接口是SortedMap
的设置模拟。)插入到排序集中的所有元素必须实现
Comparable
接口(或被指定的比较器接受)。 此外,所有这些元素必须相互可比较 :e1.compareTo(e2)
(或comparator.compare(e1, e2)
)不得为排序集中的任何元素e1
和e2
抛出ClassCastException
。 尝试违反此限制将导致违规方法或构造函数调用抛出ClassCastException
。请注意,如果排序集正确实现
Set
接口,排序集所保留的排序(无论是否提供显式比较器)必须与equals一致 。 (见Comparable
接口或Comparator
接口,以确定与等于一致的精确定义)这是因为Set
接口是根据equals
操作定义的,但是排序集使用其compareTo
(或compare
)方法执行所有元素比较因此,从排序集合的观点来看,通过该方法认为相等的两个元素是相等的。 排序集合的行为是明确定义的,即使其排序与equals不一致; 它只是不符合Set
界面的总体合同。所有通用排序集实现类应提供四个“标准”构造函数:1)一个void(无参数)构造函数,它创建一个根据其元素的自然顺序排序的空排序集。 2)具有
Comparator
型单个参数的构造函数,它创建根据指定的比较器排序的空的排序集。 3)具有Collection
类型的单个参数的构造函数,它创建一个具有与其参数相同的元素的新的排序集合,并根据元素的自然排序进行排序。 4)具有类型为SortedSet
的单个参数的构造函数,其创建具有与输入排序集相同的元素和相同顺序的新的排序集。 无法执行此建议,因为接口不能包含构造函数。注意:几种方法返回限制范围的子集。 这种范围是半开放的 ,也就是说,它们包括其低端点,但不包括其高端点(如适用)。 如果需要一个封闭范围 (包括两个端点),并且元素类型允许计算给定值的后继,只需将子范围从
lowEndpoint
请求到successor(highEndpoint)
。 例如,假设s
是一组排序的字符串。 以下成语取得包含s
中low
至high
所有字符串的视图,包括:SortedSet<String> sub = s.subSet(low, high+"\0");
可以使用类似的技术来生成开放范围 (其不包含端点)。 以下成语获得包含s
中所有字符串的s
从low
到high
,独占:SortedSet<String> sub = s.subSet(low+"\0", high);
此界面是Java Collections Framework的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Set
,TreeSet
,SortedMap
,Collection
,Comparable
,Comparator
,ClassCastException
-
-
方法摘要
所有方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 Comparator<? super E>
comparator()
返回用于为了在这个组中的元素,或比较null
如果这个集使用natural ordering的元素。E
first()
返回此集合中当前的第一个(最低)元素。SortedSet<E>
headSet(E toElement)
返回此集合的部分的视图,其元素严格小于toElement
。E
last()
返回此集合中当前的最后(最高)元素。default Spliterator<E>
spliterator()
在此排序集中的元素上创建一个Spliterator
。SortedSet<E>
subSet(E fromElement, E toElement)
返回此集合的部分的视图,其元素的范围从fromElement
(含)到toElement
,独占。SortedSet<E>
tailSet(E fromElement)
返回该集合的元素大于或等于fromElement
的部分的视图。-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream
-
-
-
-
方法详细信息
-
comparator
Comparator<? super E> comparator()
返回用于为了在这个组中的元素,或比较null
如果这个集使用natural ordering的元素。- 结果
-
比较器用于对该集合中的元素进行排序,如果此集合使用其元素的自然排序,
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
为空,并且此集合不允许空元素 -
IllegalArgumentException
- 如果fromElement
大于toElement
; 或者如果此设置本身具有限制范围,并且fromElement
或toElement
位于范围的边界之外
-
headSet
SortedSet<E> headSet(E toElement)
返回此集合的部分的视图,其元素严格小于toElement
。 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持该集支持的所有可选集合操作。返回的集合将抛出一个
IllegalArgumentException
,试图将一个元素插入其范围之外。- 参数
-
toElement
- 返回集合的高端点(独占) - 结果
-
该集合的部分视图的元素严格小于
toElement
- 异常
-
ClassCastException
- 如果toElement
与该组比较器不兼容(或者如果该集合没有比较器,则toElement
不实现Comparable
)。 如果toElement
无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException
- 如果toElement
为空,并且此集合不允许空元素 -
IllegalArgumentException
- 如果此设置本身具有限制范围,并且toElement
位于范围的边界之外
-
tailSet
SortedSet<E> tailSet(E fromElement)
返回该集合的元素大于或等于fromElement
的部分的视图。 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持该集支持的所有可选集合操作。返回的集合将抛出一个
IllegalArgumentException
,试图在其范围之外插入一个元素。- 参数
-
fromElement
- 返回集合的低端点(含) - 结果
-
该集合的部分的视图,其元素大于或等于
fromElement
- 异常
-
ClassCastException
- 如果fromElement
与此集合的比较器不兼容(或者如果该集合没有比较器,则fromElement
不实现Comparable
)。 如果fromElement
无法与当前集合中的元素进行比较,则实施可能但不是必须抛出此异常。 -
NullPointerException
- 如果fromElement
为空,并且此集合不允许空元素 -
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
如果有序set的比较(见comparator()
)是null
。 否则,拼接器的比较器必须与排序集的比较器相同或者施加与排序集的比较器相同的总排序。- Specified by:
-
spliterator
在接口Collection<E>
- Specified by:
-
spliterator
在接口Iterable<E>
- Specified by:
-
spliterator
在接口Set<E>
- 实现要求:
-
默认实现从排序集的
Iterator
创建一个late-binding拼接Iterator
。 分割器继承集合迭代器的故障快速属性。 拼接器的比较器与排序组的比较器相同。创建的
Spliterator
另外报告Spliterator.SIZED
。 - Implementation Note:
-
创建的
Spliterator
另外报告Spliterator.SUBSIZED
。 - 结果
-
一个
Spliterator
在这个排序集中的元素 - 从以下版本开始:
- 1.8
-
-