LRU (Least Recently Used) 算法的Java实现
2015-12-17 11:48
513 查看
转自:/article/2696223.html
package com.zeus.webcrawler.tool; import java.util.LinkedHashMap; import java.util.Map; /** * LRU (Least Recently Used) 算法的Java实现 * @param <K> * @param <V> * @author 杨尚川 * /article/2696223.html */ public class LRUCache<K, V> extends LinkedHashMap<K, V> { //缓存大小 private int cacheSize; public LRUCache(int cacheSize) { //LRU算法 第三个参数true是关键 super(10, 0.75f, true); this.cacheSize = cacheSize; } /** * 缓存是否已满的判断,Map判断是否满时调用的函数 * @param eldest * @return */ @Override protected boolean removeEldestEntry(Map.Entry<K, V> eldest) { boolean r = size() > cacheSize; if(r){ System.out.println("removeEldestEntry清除边界 清除缓存:"+eldest.getKey()); }else{ System.out.println("removeEldestEntry 不清除边界 "); } return r; } public static void main(String[] args) { LRUCache<String, String> cache = new LRUCache<>(5); cache.put("1", "1"); cache.put("2", "2"); cache.put("3", "3"); cache.put("4", "4"); cache.put("5", "5"); System.out.println("初始:"); cache.keySet().forEach(k -> System.out.print(k+" ")); System.out.println(); System.out.println("访问2:"); cache.get("2"); cache.keySet().forEach(k -> System.out.print(k+" ")); System.out.println(); System.out.println("访问2、3:"); cache.get("2"); cache.get("3"); cache.keySet().forEach(k -> System.out.print(k+" ")); System.out.println(); System.out.println("增加数据6、7:"); cache.put("6", "6"); cache.put("7", "7"); cache.keySet().forEach(k -> System.out.print(k+" ")); } }
相关文章推荐
- java swing给按钮添加快捷键
- 什么是java 键值对
- 关于Spring JPA的一点小总结
- SpringMVC+mybatis+maven+Ehcache缓存实现
- 【Java EE 学习 72 上】【数据采集系统第四天】【增加调查logo】【文件上传】【动态错误页指定】【上传限制】【国际化】
- 学习SSH三大框架(一)之struts2起步
- 集成websocket即时通讯 java聊天源码 代码下载 java后台框架源码 websocket源码
- java枚举
- JavaWeb开发基于Spring和mybatis框架(学习日志)
- Javadoc
- LR java 获取txt文件内容
- 使用JAVA反射的利与弊
- java资料——链表(转)
- java.lang.UnsatisfiedLinkError低概率出错解决方案
- 性能调优之Java系统级性能监控及优化
- Undefined exploded archive location myeclipse无法发布web工程
- java中实现链表(转)
- springmvc请求接收参数的几种方法
- Java之多线程内存可见性_2(synchronized可见性原理)
- 浅析Java中CountDownLatch用法