LinkedHashMap 的实现原理?
LinkedHashMap 也是基于 HashMap 实现的,不同的是它定义了一个 Entry header,这个 header 不是放在 Table 里,它是额外独立出来的。LinkedHashMap 通过继承 hashMap 中的 Entry,并添加两个属性 Entry before,after 和 header 结合起来组成一个双向链表,来实现按插入顺序或访问顺序排序。
LinkedHashMap 定义了排序模式 accessOrder,该属性为 boolean 型变量,对于访问顺序,为 true;对于插入顺序,则为 false。一般情况下,不必指定排序模式,其迭代顺序即为默认为插入顺序。
评论(3)
好
帅地,不好意思,把你的评论区当笔记了。
LinkedHashMap 是基于 HashMap 实现的,但是多了header、before、after三个属性,有了这三个属性就能组成一个双向链表,来实现按插入顺序或访问顺序排序,其迭代顺序默认为插入顺序。
https://blog.csdn.net/qq_40050586/article/details/105851970 感觉这个源码讲得挺好的