1 LinkedHashMap添加源码
LinkedHashMap继承HashMap,添加方法继承了父类
LinkedHashMap只重写了newNode()方法,只需要关注newNode()方法怎么重写
与HashMap比较,只多了一个linkNodeLast方法,关注linkNodeLast(entry)方法即可
红黑树的重写
这里使用双向链表将所有的Node节点串联,所以LinkedHashMap是有序的,添加代码大致如此。
2获取元素源码 LinkedHashMap有两种方式.(1)insert-order 插入排序 元素遵照插入顺序,每次取出后不改变元素的顺序 (2) access-order 访问排序 每次访问元素会使元素移动到链表最后.这使得LinkedHashMap可以做LRU使用。
整个过程是拿到前后节点依次处理该节点的前后节点的指针。