博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LinkedHashMap实现LRU算法
阅读量:3727 次
发布时间:2019-05-22

本文共 643 字,大约阅读时间需要 2 分钟。

LRU算法:最近最少使用,淘汰时间最长未被使用的数据。

实现思路:

1.创建一个队列,并设置队列的阈值。

2.将数据按顺序存放到队列中,新增数据时将数据添加到队列尾部,如果队列超过阈值,则从队列头部删除数据。

3.LinkedHashMap可以设置数据的访问顺序,并且在新增元素时可以删除最老的元素,所以可以用来实现LRU算法。

/** *  * LRU算法:最近最少使用,淘汰时间最长未被使用的数据 * @param 
* @param
* * @version 1.0 */public class LRU
extends LinkedHashMap
{ private int cacheSize; public LRU(int cacheSize) { /** * accessOrder: true=访问顺序排序(get/put时排序),false=插入顺序排序 */ super(16, 0.75f, true); this.cacheSize = cacheSize; } /** * 新增元素时调用,返回true时删除最老元素 */ protected boolean removeEldestEntry(java.util.Map.Entry
eldest) { return size() > cacheSize; } }

转载地址:http://ywxnn.baihongyu.com/

你可能感兴趣的文章
OpenCV的下载安装与VS2013的配置
查看>>
OpenCV在MFC窗口显示图像
查看>>
开发MFC界面爬取图片工具一(原理简介及使用OpenSSL连接https网站)
查看>>
开发MFC爬取图片工具二(实现爬取图片功能)
查看>>
开发MFC界面爬取图片工具三(结合MFC界面时遇到的问题及解决方法)
查看>>
开发MFC爬取图片工具四(建立MFC应用程序)
查看>>
MFC界面爬取图片工具五(效果展示)
查看>>
opencv学习笔记九(膨胀与腐蚀及trackbar滑动条)
查看>>
OpenCV学习笔记八(图像模糊)
查看>>
opencv学习笔记10(形态学操作)
查看>>
opencv学习笔记11(形态学操作应用)
查看>>
opencv学习笔记12(图像金字塔)
查看>>
opencv学习笔记13(基本阈值操作)
查看>>
opencv学习笔记14(自定义线性滤波)
查看>>
数据动态排名工具(使用方式)
查看>>
数据动态排名工具(所有源码)
查看>>
html网页转pdf工具一(引言及使用效果)
查看>>
html网页转pdf工具二(所有源码)
查看>>
web版python软件授权注册机
查看>>
Win10下安装wireshark不能正常使用,cmd管理员身份调用net start npf命令显示无法启动该服务
查看>>