文档

Java™教程
隐藏目录
SortedMap接口
路径:集合
课程:接口

排序映射接口

SortedMap是一种按键的自然顺序或在创建SortedMap时提供的Comparator进行排序的Map。自然顺序和Comparator对象排序部分进行了讨论。 SortedMap接口提供了常规Map操作和以下操作:

以下接口是Map对应的SortedSet

public interface SortedMap<K, V> extends Map<K, V>{
    Comparator<? super K> comparator();
    SortedMap<K, V> subMap(K fromKey, K toKey);
    SortedMap<K, V> headMap(K toKey);
    SortedMap<K, V> tailMap(K fromKey);
    K firstKey();
    K lastKey();
}

映射操作

SortedMapMap继承的操作在排序映射和普通映射上的行为相同,但有两个例外:

尽管接口不能保证,但Java平台的所有SortedMap实现中Collection视图的toString方法返回一个包含视图中所有元素的字符串,按顺序排列。

标准构造函数

按照惯例,所有通用的Map实现都提供了一个标准的转换构造函数,接受一个Map作为参数;SortedMap的实现也不例外。在TreeMap中,这个构造函数根据键的自然顺序对条目进行排序。这可能是一个错误。更好的做法是动态检查指定的Map实例是否是SortedMap,如果是,则根据相同的标准(比较器或自然顺序)对新映射进行排序。因为TreeMap采用了它的方法,它还提供了一个接受SortedMap的构造函数,并返回一个包含与给定SortedMap相同映射的新TreeMap,按照相同的标准进行排序。请注意,调用SortedMap构造函数而不是普通map构造函数取决于参数的编译时类型,而不是运行时类型。

SortedMap的实现类通常提供一个构造函数,该构造函数接受一个Comparator参数,并返回一个根据指定Comparator进行排序的空Map。如果传入null给该构造函数,则返回一个根据键的自然顺序进行排序的Map

与SortedSet的比较

因为这个接口是SortedSet的一个精确的Map对应关系,所以在The SortedSet Interface部分中的所有习语和代码示例都适用于SortedMap,只需进行微小的修改。


上一页: 排序集接口
下一页: 接口概述