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