链表---LinkedHashMap原理

 

原理简述,随后上图:

  1. HashMap 的内部类 Node<K,V> 实现 Map.Entry,Linked 的 Entry<K,V> 继承HashMap.Node<K,V>,并在此基础上添加两个属性 :Entry<K,V> before, after;
  2. 在put 元素的时候先走 HashMap 的put 方法,再创建Node 节点的时候去创建 LinkedHashMap 的Entity
  3. 创建 LinkedHashMap 的Entity后,则生成链表(关系),其实就是设置Entity 的before 和after 属性,类里边有 tail(尾),head(头) 默认null,每次排序会将传入的Entity 赋值给 tail(供下次使用),head属性只有链表第一次插入时使用到;这个引用赋值的过程类似冒泡排序。。

 

上代码:

一、

链表---LinkedHashMap原理

链表---LinkedHashMap原理

二、

链表---LinkedHashMap原理

生成LinkedHashMap.Entity链表---LinkedHashMap原理

 排序链表---LinkedHashMap原理