LRU 算法
LRU 是一种作为缓存的算法,像 CPU 缓存,数据库缓存,浏览器缓存。以及在移动端开发时的图片安缓存,采用 LRU 缓存策略的应用很广泛。在面试中也是常常考察的一个点。当然也有其他缓存方法,常见的策略有三种:先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Used)、最近最少使用策略 LRU(Least Recently Used)。
下面就来一起实现一下 LRU 算法。
实现
主要思路:采用链式结构,越早加入到链中数据,顺序越靠近尾部,后来加入的数据添加到头部。
当开始需要访问数据时,先遍历链表,分两种情况:
(1)存在数据
- 数据在头部,则直接返回,不需要做操作
- 数据不在头部,将数据移动到头部(注意在尾部的情况)
(2)不存在数据
- 达到达到最大容量,删除尾部的一个元素,然后添加新元素到头部
- 未达到最大容量,直接添加到新元素到头部

public class LRUList<T> {
private static final int DEFAULT_SIZE =

本文介绍了LRU(最近最少使用)算法,这是一种常用的缓存策略,常见于CPU缓存、数据库缓存等场景。文章详细阐述了LRU的工作原理,并通过链表结构讲解了其实现方式,包括数据访问时的头部更新和尾部删除规则,以及满容量时的处理逻辑。
最低0.47元/天 解锁文章
2296

被折叠的 条评论
为什么被折叠?



