算法:LRU 缓存实现

本贴最后更新于 1137 天前,其中的信息可能已经时移世易

概述

LRU 缓存算法,是提供一种缓存实现,要求插入新数据时,当缓存达到最大空间要求,就将最久没有访问过的数据删除掉从而为新数据腾出空间。同时要求获取或插入数据的时间复杂度都为 O(1)。

基本思路

  • hash 表 + 链表

hash 表的目的是为了使访问的事件复杂度为 O(1),链表是为了维护一种时间维度上是否最近被访问的前后关系。其中 hash 表使用 Java 中的 HashMap 来替代,链表部分自己实现。

代码

代码中附带很多注释,具体逻辑请参考注释


                
  • 算法
    428 引用 • 254 回帖 • 24 关注
1 操作
hudk 在 2021-10-11 10:53:28 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...