一、SortedMap 类结构图
二、源码分析
a. SortedMap 接口继承自 Map 接口,提供了按照 Key 排序的功能,即 keySet、values、entrySet 结果集有序
b. Key 需要实现 Comparable 接口或者能被指定的 Comparator 接收,以便排序
c. Map 接口定义中指出,应该使用 equals 判断 Key 是否相等,但 SortedMap 实际可以使用 Comparable/Comparator 代替
d. 这些函数返回的部分 Map (子 Map) 与原有 Map 有映射关系,一个变化影响另一个
The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa.
SortedMap<K,V> subMap(K fromKey, K toKey); // 包含 from,不包含 to
SortedMap<K,V> headMap(K toKey); // 不包含 to
SortedMap<K,V> tailMap(K fromKey); // 包含 from
e. 相比 Map 接口,主要增加了 comparator() 等比较相关方法,在定义中指出返回的 Set 应该是有序的