点开LinkedHashMap的源码 可以看到 继承HashMap<K,V> 实现Map接口
我们注意到 在源码开头描述中有一段话
都实现了Map接口 并且区别在于linkedHashMap是一个双端队列组成
可以看见比HashMap的Entry多了两个参数 before,after
也是使用的Hash'Map的Entry构造器
包括实例化LinkedHashMap的时候调用的也是父类(HashMap)的构造器,put方法,remove方法都是走的HashMap的方法 可以看到 LinkedHashMap的内存结构与HashMap是一样的 唯一区别就是他的链表
HashMap的Entry链表 只有一个next参数 相当于单向链表
而LinkedHashMap的链表有 after,before两个参数 相当于双向链表
可以看出 在做大量查找操作的时候 LinkedHashMap的效率要比HashMap的高 其他基本无区别
做增加操作基本等量 也就多了两个“指针”赋值 注意此处的指针 并不是真正的指针