由于亂序的數(shù)據(jù)對查找不利,例如無法使用二分法等降低算法的時間復雜度,如果數(shù)據(jù)在插入時就排好順序,查找的性能就會提升很多。SortedMap接口就是為這種有序數(shù)據(jù)服務的。
SortedMap接口需要數(shù)據(jù)的key支持Comparable,或者可以被指定的Comparator接受。SortedMap主要提供了以下方法:
// 返回排序數(shù)據(jù)所用的Comparator
Comparator<? super K> comparator();
// 返回在[fromKey, toKey)之間的數(shù)據(jù)
SortedMap<K,V> subMap(K fromKey, K toKey);
// 返回從第一個元素到toKey之間的數(shù)據(jù)
SortedMap<K,V> headMap(K toKey);
// 返回從fromKey到末尾之間的數(shù)據(jù)
SortedMap<K,V> tailMap(K fromKey);
//返回第一個數(shù)據(jù)的key
K firstKey();
//返回最后一個數(shù)據(jù)的key
K lastKey();
SortedMap主要提供了獲取子集,以及獲取最大值(最后一個值)和最小值(第一個值)的方法。但這僅僅是排序數(shù)據(jù)能提供的便利的一小部分,在之后分析的NavigableMap中,我們還會看到更多的功能。
下一篇:Java集合源碼分析之Map(三):接口NavigableMap
我是飛機醬,如果您喜歡我的文章,可以關注我~
編程之路,道阻且長。唯,路漫漫其修遠兮,吾將上下而求索。