当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

你所熟知的 LRU(最近最少使用)

发表于: 2015-07-19   作者:dalan_123   来源:转载   浏览:
摘要: 关于LRU这个名词在很多地方或听说,或使用,接下来看下lru缓存回收的实现 1、大体的想法     a、查询出最近最晚使用的项     b、给最近的使用的项做标记 通过使用链表就可以完成这两个操作,关于最近最少使用的项只需要返回链表的尾部;标记最近使用的项,只需要将该项移除并放置到头部,那么难点就出现 你如何能够快速在链表定位对应的该项? 这时候多

关于LRU这个名词在很多地方或听说,或使用,接下来看下lru缓存回收的实现

1、大体的想法

    a、查询出最近最晚使用的项

    b、给最近的使用的项做标记

通过使用链表就可以完成这两个操作,关于最近最少使用的项只需要返回链表的尾部;标记最近使用的项,只需要将该项移除并放置到头部,那么难点就出现 你如何能够快速在链表定位对应的该项?

这时候多半很多人想到使用哈希表,它可以在常规的时间内容,定位到某一个对象,采用 key关联存放链表节点的哈希表,这样我们就可以根据key执行hash获取到对应的链表节点对应的哈希表,这样就可以快点找到最近使用的节点(也就是实际需要的列表项),同样可以判断节点的存在与否。

那么这种结构是我们自己构造还是采用现有的api;熟悉java 的人都知道,LinkedHashMap是完全满足我们的需求,这样只需在继承LinkedHashMap的基础进行微调即可满足我们所需的LRU回收。

你所熟知的 LRU(最近最少使用)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
4.7.2 最近最久未使用(LRU)置换算法   1. LRU(Least Recently Used)置换算法的描述   2. LRU置
互联网的发展,无疑不是现在科技发展的最好证明,互联网最有价值之处不在自己生产很多新东西,而是
转自:http://cavenfeng.iteye.com/blog/1508495 你有用原型开发工具吗?如果有,那你用的是Axure还
Axure 6.5已于4月18日发布,可直到上周我才发现,于是赶紧下载升级。等待下载的过程中,闲来无聊跑
Spring2所需要的jar包最简单,只需要一个综合的spring.jar 就可以了 Struts2所需要的jar包如下: ognl
http://news.163.com/unseen2009/25SG0001/7508_06.html 没做愤青好久了,可是每次看到这些图片时仍
Shell也叫做命令行界面,它是*nix操作系统下用户和计算机的交互界面。Shell这个词是指操作系统中提
项目源码请查看我的GitHub项目地址: https://github.com/DXSmile/-Usage-of-UITabBarButton-.git 阐
原文链接 译者:flychao88 当用Redis作为一个LRU存储时,有些时候是比较方便的,在你增添新的数据时
以下代码出自http://blog.csdn.net/hellogv/,引用请注明出处! 在开始本文之前,请确定你自己,是否
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号