TreeMap
使用说明TreeMap 的底层数据结构为红黑树,主要是根据key进行排序,相比较于
HashMap
的数组+链表+红黑树的数据结构而言,二者的应用场景是有明显的区别的数组
TreeMap
的优势TreeMap
根绝key进行比较排序数据结构
Comparable
接口HashMap
无排序功能学习
Treemap
红黑树中一个节点对应一个kv对,没有冗余无效的Node节点.net
HashMap
的数组中,可能存在较多的空位code
TreeMap
的缺点正常来说,TreeMap 的查询时间复杂度为 O(logN)
, 而HashMap为 O(1)
blog
因此Map的元素越多,TreeMap根据key查询的效率会更低;排序
另外一方面,HashMap
在糟糕的状况下,可能退化为链表接口
TreeMap
每次新增or删除一个kv对,均可能致使红黑树的重排get
HashMap
当新增一个kv对,使得Map中的个数大于阀值时,须要对数组进行从新扩容效率
经过上面的优缺点对比,能够看出TreeMap和HashMap二者的使用场景差异算是比较大的
对Map中的kv对有排序需求时,选择 TreeMap
, 这种场景下,尽可能保证如下几点
扫一扫二维码,关注 小灰灰blog