为什么说TreeMap和LinkedHashMap是有序的

TreeMap默认升序,LinkedHashMap则记录了插入顺序

LinkedHashMap采用的hash算法和HashMap相同,但是它重新定义了数组中保存的元素Entry,该Entry除了保存当前对象的引用外,还保存了其上一个元素before和下一个元素after的引用,从而在哈希表的基础上又构成了双向链接列表。这样就能按照插入的顺序遍历原本无序的HashMap。
TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。
(红黑树一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。在我们好理解的二叉查找树上增加了五点要求,以促进树的平衡)
在添加key-value时,会在平衡二叉查找树上查找插入位置插入,然后再根据红黑树树的特性通过左旋右旋等操作调整树结构。读数据时会根据二叉树的中序遍历方式读取数据,此时读取数据即为默认升序数据。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务