LRU

LRU least recently used 最近最少使用算法

根据数据的历史访问记录来淘汰数据,其核心思想是:如果数据最近被访问过,那将来被访问的几率会很高

实现方法:
可以用链表存储数据。
对于新数据,则插入到链表头;
对于命中数据,则移动到链表头;
当链表满时,移除链表尾部的数据。

可以基于LinkedHashMap来实现LRU算法。
LinkedHashMap本身是个list,另外还可以通过map来快速查找数据。
以上需要对LinkedHashMap熟悉些

要求:
LRUCache

  1. 有个容量capacity
  2. 有个get(Key key)方法, 时间复杂度O(1)
  3. 有个put(Key key, Value value)方法,时间复杂度O(1)
    除了基于LinkedHashMap实现外,也可以直接使用HashMap + 双向列表的方式实现(这种方案就不用了解LinkedHashMap的具体实现了)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值