|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.util
接口 SortedSet<E>
- 所有超级接口:
- Collection<E>, Iterable<E>, Set<E>
- 所有已知实现类:
- TreeSet
-
public interface SortedSet<E>
- extends Set<E>
保证迭代器按照元素递增顺序遍历的集合,可以按照元素的自然顺序(参见 Comparable)进行排序,或者按照创建有序集合时提供的 Comparator进行排序。要采用此排序,还要提供一些其他操作(此接口是 SortedMap 的集合对应物)。
插入有序集合的所有元素都必须实现 Comparable 接口(或者被指定的 Comparator 所接受)。另外,所有这些元素都必须是可相互比较的:e1.compareTo(e2)(或 comparator.compare(e1, e2))对于有序集合中的任意元素 e1 和 e2 都不能抛出 ClassCastException。试图违反这些限制将导致违反规则的方法或者构造方法调用抛出 ClassCastException。
注意,如果有序集合正确实现了 Set 接口,则有序集合所保持的顺序(无论是否明确提供了比较器)都必须保持相等一致性(相等一致性 的精确定义请参阅 Comparable 接口或 Comparator 接口)。这也是因为 Set 接口是按照 equals 操作定义的,但有序集合使用它的 compareTo(或 compare)方法对所有元素进行比较,因此从有序集合的观点来看,此方法认为相等的两个元素就是相等的。即使顺序没有保持相等一致性,有序集合的行为仍然是 定义良好的,只不过没有遵守 Set 接口的常规协定。
所有通用有序集合实现类都应该提供 4 个“标准”构造方法:1) void(不带参数)构造方法,创建空的有序集合,按照元素的自然顺序 排序。2) 带有一个 Comparator 类型参数的构造方法,创建一个空的有序集合,根据指定的比较器排序。3) 带有一个 Collection 类型参数的构造方法,创建一个元素与参数相同的有序集合,按照元素的自然顺序排序。4) 带有一个 SortedSet 类型参数的构造方法,创建一个新的有序集合,元素及排序方法与输入的有序集合相同。除了 JDK 实现(TreeSet 类)遵循此建议外,无法保证强制实施此建议(因为接口不能包含构造方法)。
此接口是 Java Collections Framework 的成员。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Set
,TreeSet
,SortedMap
,Collection
,Comparable
,Comparator
,ClassCastException
方法摘要 | |
---|---|
Comparator<? super E> |
comparator() 返回与此有序集合关联的比较器,如果使用元素的自然顺序,则返回 null。 |
E |
first() 返回此有序集合中当前第一个(最小的)元素。 |
SortedSet<E> |
headSet(E toElement) 返回此有序集合的部分视图,其元素严格小于 toElement。 |
E |
last() 返回此有序集合中最后一个(最大的)元素。 |
SortedSet<E> |
subSet(E fromElement, E toElement) 返回此有序集合的部分视图,元素范围从 fromElement(包括)到 toElement(不包括)。 |
SortedSet<E> |
tailSet(E fromElement) 返回此有序集合的部分视图,其元素大于或等于 fromElement。 |
从接口 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。
注:此方法总是返回一个半开区间(包含低终结点而不包含高终结点)。如果需要一个闭区间(同时包括两个终结点),而且元素类型允许计算给定值的后继值,则只需要请求从 lowEndpoint 到 successor(highEndpoint) 的子区间。例如,假设 s 是一个字符串有序集合。下面的语句将得到一个包含 s 中从 low 到 high(包括)所有字符串的视图:
SortedSet sub = s.subSet(low, high+"\0");
可使用类似的技术生成开区间(两个终结点都不包括)。下面的语句得到包括 s 中从 low 到 high(不包括)所有 String 的视图:SortedSet sub = s.subSet(low+"\0", high);
-
-
- 参数:
-
fromElement
- subSet 的低终结点(包括)。 -
toElement
- subSet 的高终结点(不包括)。 - 返回:
- 有序集合中指定区间的视图。
- 抛出:
-
ClassCastException
- 如果不能使用集合的比较器(如果此集合没有比较器,则使用自然顺序)比较 fromElement 和 toElement。如果 fromElement 或 toElement 不能与集合中的当前元素比较,实现可能抛出此异常,但不要求。 -
IllegalArgumentException
- 如果 fromElement 大于 toElement;或者此集合本身是 subSet、headSet 或 tailSet,而 fromElement 或 toElement 不在 subSet、headSet 或 tailSet 指定的范围内。 -
NullPointerException
- 如果 fromElement 或 toElement 为 null,并且此有序集合不接受 null 元素。
headSet
SortedSet<E> headSet(E toElement)
-
返回此有序集合的部分视图,其元素严格小于 toElement。返回的有序集合由此有序集合支持,因此返回有序集合中的更改将反映在此有序集合中,反之亦然。返回的有序集合支持所有可选的集合操作。
如果用户试图插入超出指定范围的元素,则此方法返回的有序集合将抛出 IllegalArgumentException。
注:此方法总是返回不包括(高)终结点的视图。如果需要包含此终结点的视图,而且元素类型允许计算给定值的后继值,则只需要请求以 successor(highEndpoint) 为界的 headSet。例如,假设 s 是一个字符串有序集合。下面的语句得到一个包含 s 中所有小于或等于 high 的字符串的视图:
SortedSet head = s.headSet(high+"\0");
-
-
- 参数:
-
toElement
- headSet 的高终结点(不包括)。 - 返回:
- 有序集合指定初始范围的视图。
- 抛出:
-
ClassCastException
- 如果 toElement 与此集合的比较器不兼容(如果此集合没有比较器,而 toElement 没有实现 Comparable)。如果 toElement 不能和集合中的当前元素比较,实现可能抛出此异常,但不要求。 -
NullPointerException
- 如果 toElement 为 null,并且此有序集合不接受 null 元素。 -
IllegalArgumentException
- 如果此集合本身是一个 subSet、headSet 或 tailSet,而 toElement 不在 subSet、headSet 或 tailSet 指定的范围之内。
tailSet
SortedSet<E> tailSet(E fromElement)
-
返回此有序集合的部分视图,其元素大于或等于 fromElement。返回的有序集合由此有序集合支持,因此返回有序集合中的更改将反映在此有序集合中,反之亦然。返回的有序集合支持所有可选的集合操作。
如果用户试图插入超出指定范围的元素,则此方法返回的有序集合将抛出 IllegalArgumentException。
注:此方法总是返回包括(低)终结点的视图。如果需要不含此终结点的视图,而且元素类型允许计算给定值的后继值,则只需要请求以 successor(lowEndpoint) 为界的 tailSet。例如,假设 s 是一个字符串有序集合。下面的语句将得到一个包含 s 中严格大于 low 的所有字符串的视图:
SortedSet tail = s.tailSet(low+"\0");
-
-
- 参数:
-
fromElement
- tailSet 的低终结点(包括)。 - 返回:
- 有序集合指定的后部范围的视图。
- 抛出:
-
ClassCastException
- 如果 fromElement 与此集合的比较器不兼容(如果此集合没有比较器,而 fromElement 没有实现 Comparable)。如果 fromElement 不能和集合中的当前元素比较,实现可能抛出此异常,但不要求。 -
NullPointerException
- 如果 fromElement 为 null,并且此有序集合不接受 null 元素。 -
IllegalArgumentException
- 如果集合本身是一个 subSet、headSet 或 tailSet,而 fromElement 不在 subSet、headSet 或 tailSet 指定的范围之内。
first
E first()
- 返回此有序集合中当前第一个(最小的)元素。
-
-
- 返回:
- 有序集合中当前第一个(最小的)元素。
- 抛出:
-
NoSuchElementException
- 有序集合是空的。
last
E last()
- 返回此有序集合中最后一个(最大的)元素。
-
-
- 返回:
- 有序集合中当前最后一个(最大的)元素。
- 抛出:
-
NoSuchElementException
- 有序集合是空的。
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |