目录
简介
/**
* 进一步提供其键的总排序的映射。
* 映射是根据其键的自然顺序排序的,或者由一个比较器(通常在已排序的映射创建时提供)来排序的。
* 这种顺序反映在遍历已排序映射的集合视图(由entrySet、keySet和values方法返回)时。
* 还提供了几个额外的操作来利用排序。(此接口是SortedSet的映射模拟。)
*
* <p>插入到排序映射中的所有键必须实现Comparable接口(或者被指定的比较器接受)。
* 而且,所有这些键必须是相互可比的: k1. compareto (k2)(或comparator.compare(k1, k2))
* 不能让任何键k1和k2抛出ClassCastException。
* 试图违反此限制将导致违规的方法或构造函数调用抛出ClassCastException。
*
* <p>注意,如果要正确地实现map接口,排序后的map所维护的顺序(不管是否提供了显式的比较器)必须与equals一致。
* (参见Comparable接口或Comparator接口,以获得与equals一致的精确定义。)
* 这是因为Map接口是根据equals操作定义的,但是一个排序后的Map使用它的compareTo(或compare)方法执行所有的键比较,
* 所以从排序后的Map的角度来看,这个方法认为相等的两个键是相等的。
* 树映射的行为是定义良好的,即使它的顺序与equals不一致;它只是没有遵守map接口的通用契约。
*
* <p>所有通用的排序映射实现类都应该提供四个“标准”构造函数。
* 虽然接口无法指定所需的构造函数,但不可能强制执行此建议。预期的“标准”构造函数为所有排序的映射实现:
* <ol>
* <li>一个void(无参数)构造函数,它创建一个按键的自然顺序排序的空排序映射。</li>
* <li>一个只有一个比较器类型参数的构造函数,它创建一个根据指定的比较器排序的空的排序映射。</li>
* <li>具有Map类型的单个参数的构造函数,该构造函数创建一个具有与其参数相同的键-值映射的新映射,并根据键的自然顺序进行排序。</li>
* <li>带有SortedMap类型的单个参数的构造函数,