-
- 参数类型
-
E
- 此集维护的元素类型
- All Superinterfaces:
-
Collection<E>
,Iterable<E>
,Set<E>
- All Known Subinterfaces:
-
NavigableSet<E>
- 所有已知实现类:
-
ConcurrentSkipListSet
,TreeSet
public interface SortedSet<E>extends Set<E>
Set
进一步提供其元素的总排序 。 元素使用natural ordering或Comparator
进行排序,通常在排序集创建时提供。 set的迭代器将按升序元素顺序遍历集合。 提供了几个额外的操作以利用订购。 (此接口是SortedMap
的设定模拟。)插入到有序集中的所有元素必须实现
Comparable
接口(或由指定的比较器接受)。 此外,所有这些元素必须是可相互比较的 :e1.compareTo(e2)
(或comparator.compare(e1, e2)
)不得为有序集合中的任何元素e1
和e2
抛出ClassCastException
。 尝试违反此限制将导致违规方法或构造函数调用抛出ClassCastException
。请注意,如果排序集要正确实现
Set
接口,则由排序集维护的排序(无论是否提供显式比较器)必须与equals一致 。 (有关与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
中low
到high
所有字符串的视图,独占:SortedSet<String> sub = s.subSet(low+"\0", high);
此接口是Java Collections Framework的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Set
,TreeSet
,SortedMap
,Collection
,Comparable
,Comparator
,ClassCastException
-
-
方法摘要
所有方法 实例方法 抽象方法 Default Methods 变量和类型 方法 描述 Comparator<? super E>
comparator()
返回用于为了在这个组中的元素,或比较null
如果这个集使用natural ordering的元素。E
first()
返回此集合中当前的第一个(最低)元素。SortedSet<E>
headSet(E toElement)
返回此set的部分视图,其元素严格小于toElement
。E
last()
返回此集合中当前的最后一个(最高)元素。default Spliterator<E>
spliterator()
在此有序集中的元素上创建Spliterator
。SortedSet<E>
subSet(E fromElement, E toElement)
返回此set的部分视图,其元素范围从fromElement
(包括toElement
)到toElement
(独占)。SortedSet<E>
tailSet(E fromElement)
返回此set的部分视图,其元素大于或等于fromElement
。-
声明方法的接口 java.util.Collection
parallelStream, removeIf, stream, toArray
-
-
-
-
方法详细信息
-
comparator
Comparator<? super E> comparator()
返回用于为了在这个组中的元素,或比较null
如果这个集使用natural ordering的元素。- 结果
- 用于对此集合中的元素进行排序的比较器,如果此集合使用其元素的自然顺序,
null
-
subSet
SortedSet<E> subSet(E fromElement, E toElement)
返回此set的部分视图,其元素范围从fromElement
(含)到toElement
(独占)。 (如果fromElement
和toElement
相等,则返回的集合为空。)返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集将在尝试插入超出其范围的元素时抛出
IllegalArgumentException
。- 参数
-
fromElement
- 返回集的低端点(包括) -
toElement
- 返回集的高端点(不包括) - 结果
- 该集合的部分视图,其元素范围从
fromElement
(含),到toElement
,独家 - 异常
-
ClassCastException
- 如果fromElement
和toElement
无法使用此组的比较器相互比较(或者,如果该组没有比较器,则使用自然排序)。 如果无法将fromElement
或toElement
与当前集合中的元素进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromElement
或toElement
为null且此set不允许null元素 -
IllegalArgumentException
- 如果fromElement
大于toElement
; 或者如果此设置本身具有受限范围,则fromElement
或toElement
位于范围的范围之外
-
headSet
SortedSet<E> headSet(E toElement)
返回此set的部分视图,其元素严格小于toElement
。 返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集合将尝试在其范围之外插入元素时抛出
IllegalArgumentException
。- 参数
-
toElement
- 返回集的高端点(独占) - 结果
- 该集合的部分视图,其元素严格小于
toElement
- 异常
-
ClassCastException
- 如果toElement
与此组的比较器不兼容(或者,如果该组没有比较器,则toElement
未实现Comparable
)。 如果toElement
无法与集合中当前的元素进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果toElement
为null且此set不允许null元素 -
IllegalArgumentException
- 如果此设置本身具有受限范围,并且toElement
位于范围的范围之外
-
tailSet
SortedSet<E> tailSet(E fromElement)
返回此set的部分视图,其元素大于或等于fromElement
。 返回的集由此集支持,因此返回集中的更改将反映在此集中,反之亦然。 返回的集支持此集支持的所有可选集操作。返回的集合将尝试在其范围之外插入元素时抛出
IllegalArgumentException
。- 参数
-
fromElement
- 返回集的低端点(包括) - 结果
- 该集合的部分视图,其元素大于或等于
fromElement
- 异常
-
ClassCastException
- 如果fromElement
与此组的比较器不兼容(或者,如果该组没有比较器,则fromElement
未实现Comparable
)。 如果无法将fromElement
与当前集合中的元素进行比较,则实现可能(但不是必须)抛出此异常。 -
NullPointerException
- 如果fromElement
为null且此set不允许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
如果有序set的比较(见comparator()
)是null
。 否则,分裂器的比较器必须与分类组的比较器相同或强加相同的总排序。- Specified by:
-
spliterator
在界面Collection<E>
- Specified by:
-
spliterator
接口Iterable<E>
- Specified by:
-
spliterator
在界面Set<E>
- 实现要求:
- 默认实现从排序集
Iterator
创建late-binding分裂Iterator
。 spliterator继承了set迭代器的fail-fast属性。 分裂器的比较器与分类组的比较器相同。创建的
Spliterator
另外报告Spliterator.SIZED
。 - Implementation Note:
- 创建的
Spliterator
另外报告Spliterator.SUBSIZED
。 - 结果
- 对此有序集中的元素进行
Spliterator
- 从以下版本开始:
- 1.8
-
-