设为首页 加入收藏

TOP

请用Java设计一个Least Recently Used (LRU) 缓存
2014-11-07 23:30:06 来源: 作者: 【 】 浏览:23
Tags:请用 Java 设计 一个 Least Recently Used LRU 缓存

LRU介绍:


LRU是Least Recently Used的缩写,即最少使用页面置换算法,是为虚拟页式存储管理服务的。


思路介绍:


可以使用两个标准的数据结构来实现,Map和Queue。因为需要支持多线程,需要使用实现了java.utili.concurrent.*的Map和Queue。


主要思路是使用一个Queue来维护FIFO和Map来对数据进行排序,当向缓存添加新的元素时,共有以下三种可能:


1. 如果该元素已经在Cache中存在(Map),我们会从queue中删除改元素并将其添加到queue的第一个位置。


2. 如果缓存已满无法新增新的元素,我们会从queue和Map中删除最后面的那个元素并把新元素添加进来。


3. 同时在Map和Queue中增加新的元素


参考答案:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Spring如何获取Bean 下一篇讯飞嵌入式笔试题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: