Java:缓存:LinkedHashMap实现Lru

Lru

Least Recently Used,最近最少使用,包括两个原则

1.最近原则,即最久未被使用,越久未被使用越应该被优先删除

2.最少原则,即记录使用次数,使用次数越少越应该被优先删除

源码分析

LinkedHashMap维护一个LinkedHashMapEntry<K,V>的双向链表

1.双向链表的实现:链表中的结点持有两个结点的实例对象before、after
2.LinkedHashMap持有两个结点的实例对象head和tail作为链表的表头和表尾,代表可以从表头,或表尾查找/遍历链表

对LinkedHashMap的增删查操作,也会对链表进行相同的操作并改变查找顺序

对LinkedHashMap的增/改操作

如果没有旧Value,直接添加到链表的尾部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值