本文详细介绍java api 接口篇(二)下
SortedMap接口
SortedMap是一个将它的项保持为上升顺序的Map, 它按照键的自然顺序进行排序,或按照在SortedMap 创建时提供的 Comparator 进行排序(自然顺序和 Comparators 已在前面的有关 Object Ordering 的章节中做过讨论)。除了正常的 Map 操作之外, 该 Map 接口还提供下列操作:
局域视图: 对 sorted Map 执行任意局域操作。
端点:返回在 sorted Map 中的第一个或最后一个键。
比较器存取: 返回对 map 进行排序的Comparator 。 public interface SortedMap extends Map { Comparator comparator(); SortedMap subMap(Object fromKey, Object toKey); SortedMap headMap(Object toKey); SortedMap tailMap(Object fromKey); Object first(); Object last(); } 这个接口是SortedSet的 Map等价物
Map操作
SortedMap 从 Map 继承的操作在 sorted maps 和正常 maps 上的行为是等同的,只有两个例外:
由对任意 sorted map 的 对象集视图的 iterator 操作所返回的 Iterator 按顺序遍历对象集。
由 Collection视图的 toArray 操作所返回的数组按顺序包括键、值或项。
尽管该接口不保证这一点,但在 JDK 的 SortedMap 实现中的Collection视图的 toString 方法返回一个按顺序包含视图的所有元素的串。
标准构造函数(Standard Constructors)
按惯例,所有的 Map 实现都提供一个采用一个 Map 的标准构造函数,SortedMap 实现也不例外。该构造函数创建了一个 SortedMap 对象,它按照它们的键的自然顺序对它的项进行排序。除此之外 ,按惯例,SortedMap 实现还提供另外两个标准构造函数:
一个构造函数采用一个 Comparator 并返回一个新的(空的)按特定 Comparator 排序的SortedMap。
另一个构造函数采用一个 SortedMap 并返回一个新的包含与给定的 SortedMap 的映射相同的 SortedMap,
它按照同样的 Comparator进行排序 (或是用元素的自然顺序,如果特定的 SortedMap 也这样做过的话)。
请注意,决定该构造函数是否比普通 Map 构造函数优先调用的是参数的编译时类型,而不是它的运行时类型! 第一个标准构造函数是用显式 Comparator 创建一个空的 SortedSet 的一般方法。第二个标准构造函数在本质上与标准 Map 构造函数相似:它用同样的排序创建一个 SortedMap 的拷贝,但使用的是一个程序员指定的实现类型。
与SortedSet的比较
因为这个接口是 SortedSet 的一个精确的 Map 对等物,所以,在 SortedSet章节 中的所有的惯用程序和代码举例均适用于 SortedMap, 只需一些小的更改。
责编:豆豆技术应用