1、LRU Cache 淘汰规则
Least Recently Used,将最近最少使用的 key 从缓存中淘汰掉。以链表法为例,最近访问的 key 移动到链表头,不常访问的自然靠近链表尾,如果超过容量、个数限制,移除尾部的
-
例如有原始数据如下,容量规定为 3
- 时间上,新的留下,老的淘汰,比如 put d,那么最老的 a 被淘汰
- 如果访问了某个 key,则它就变成最新的,例如 get b,则 b 被移动到链表头
2、LRU Cache 链表实现
-
如何断开节点链接
-
如何链入头节点
参考代码一(纯手写实现)
package day06;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class LruCache1 {