目录
TreeMap vs HashMap
何时选择TreeMap?
元素具备可比较性且要求升序遍历(按照元素从小到大)
何时选择HashMap?
无序遍历
LinkHashMap
在HashMap的基础上维护元素的添加顺序,使得遍历的结果是遵从添加顺序的
一、添加节点
我们在添加节点的时候,同时再维护一个双向链表来记录节点的添加顺序。
假设添加顺序是
37、21、31、41、97、95、52、42、83
二、删除节点
1、删除叶子节点
删除二叉树上的叶子节点不会影响链表上的添加顺序
2、删除度为1的节点
删除度为1的节点不会影响链表上的添加顺序
3、删除度为2的节点
二叉树删除度为2的节点,实际删除的是该节点的前驱或后继节点,这样会导致链表的添加顺序发生改变。需要注意更换 node 与 前驱\后继节点 的连接位置
比如下图删除31
三、更换节点的链接位置
行者常至,为者常成!