-
- 参数类型
-
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的元素。Efirst()返回此集合中当前的第一个(最低)元素。SortedSet<E>headSet(E toElement)返回此set的部分视图,其元素严格小于toElement。Elast()返回此集合中当前的最后一个(最高)元素。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
-
-