一 继承关系及概述
SortedSet是个接口,它里面的(只有TreeSet这一个实现可用)中的元素一定是有序的。 保证迭代器按照元素递增顺序遍历的集合,可以按照元素的自然顺序(参见 Comparable)进行排序, 或者按照创建有序集合时提供的 Comparator进行排序。
这也是因为 Set 接口是按照 equals 操作定义的,但有序集合使用它的 compareTo(或 compare)方法对所有元素进行比较,
因此从有序集合的观点来看,此方法认为相等的两个元素就是相等的。
即使顺序没有保持相等一致性,有序集合的行为仍然是 定义良好的,
只不过没有遵守 Set 接口的常规协定。
所有通用有序集合实现类都应该提供 4 个“标准”构造方法:
1) void(不带参数)构造方法,创建空的有序集合,按照元素的自然顺序 排序。
2) 带有一个 Comparator 类型参数的构造方法,创建一个空的有序集合,根据指定的比较器排序。
3) 带有一个 Collection 类型参数的构造方法,创建一个元素与参数相同的有序集合,按照元素的自然顺序排序。
4) 带有一个 SortedSet 类型参数的构造方法,创建一个新的有序集合,元素及排序方法与输入的有序集合相同。
除了 JDK 实现(TreeSet 类)遵循此建议外,无法保证强制实施此建议(因为接口不能包含构造方法)。
二 内部结构及方法
Comparator<? super E> comparator(); 返回比较器
SortedSet<E> subSet(E fromElement, E toElement); 返回指定区间的子set
SortedSet<E> headSet(E toElement); 返回从最开始的元素到指定元素区间的子set
SortedSet<E> tailSet(E fromElement); 返回从指定元素到末尾区间的子set
E first();返回第一个元素
E last();返回最后一个元素