LinkHashMap总结

 

  • linkHashMap继承HashMap

  • LinkHashMap的底层维护了一个双向列表 ,重写了HashMap的 的实体类Entry 实现了双向列表,内部结构还是数组+链表
  • 双向链表

  •  
  • linkHashMap和HashMap的区别
    • HashMap的存储和获取是无序的
    • LinkHashMap是有序的 (1,根据插入顺序排序,2,根据访问顺序排序(accessOrder))
  • LRUCache
    • 最简单的LRUCache实现 最关键的参数是accessOrder 当为true的时候安装访问情况排序 把访问的数据排在链表的末尾

  • 面试题
    • linkedHashMap为什么能用来做LURCache
      • LinkedHashMap自身已经实现了顺序存储,默认情况下是按照元素的添加顺序存储,也可以启用按照访问顺序存储,即最近读取的数据放在最前面,最早读取的数据放在最后面,然后它还有一个判断是否删除最老数据的方法removeEldestEntry(),默认是返回false,即不删除数据,我们使用LinkedHashMap实现LRU缓存的方法就是对LinkedHashMap实现简单的扩展,扩展方式有两种,一种是inheritance,一种是delegation,具体使用什么方式看个人喜好
        • delegation 代理方式 (Lru类中使用LinkeHashMap)
        • inheritance 实现 (Lru类继承 LinkHashMap)
  • 参考
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值