基于LRU算法的小Cache
class LruCache<K,V> extends LinkedHashMap<K, V>{
private int maxCapacity;
public LruCache(int maxCapacity){
super(maxCapacity, 0.75f, true);
this.maxCapacity=maxCapacity;
}
/**移除最近最少使用的那个元素*/
protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest){
return size()>maxCapacity;//true时会移除相关元素
}
}
public class TestLruCache{
public static void main(String[] args) {
LruCache<String,Integer> cache=
new LruCache<String,Integer>(3);
cache.put("A", 100);
cache.put("M", 200);
cache.put("D", 300);
cache.put("C", 400);
System.out.println(cache); //{M=200, D=300, C=400}
cache.get("M");
System.out.println(cache); //{D=300, C=400, M=200}
cache.put("E", 500);
System.out.println(cache); //{C=400, M=200, E=500}
}
}
class SqlSession{
//.....
private LruCache<String,Object> cache;
}
转载于:https://my.oschina.net/u/3757772/blog/1799938
- 点赞
- 收藏
- 分享
- 文章举报
- 深入了解java集合框架一: LinkedHashMap的特殊功能 (基于访问的"最少使用算法(LRU))清除没有被访问或者少访问的元素
- 简单LRU算法实现的Cache(C++)
- 简单LRU算法实现的Cache(C++)
- 使用LinkedHashMap来实现一个使用LRU(Least Recently Used)算法的cache
- Nodejs基于LRU算法实现的缓存处理操作示例
- cpu cache中LRU算法所需要的位数
- LRU算法的精简实现(基于Java)
- Android大图加载优化--基于LRU算法的本地文件缓存
- LinkedList实现基于LRU算法的缓存
- 基于LinkedHashMap实现LRU缓存调度算法原理
- 基于LRU算法的连接检测实现
- cache 清除算法 LRU & LFU & FIFO
- 基于最少使用频次的LRU,LFU缓存淘汰算法
- 基于LRU算法的缓存池——阿里笔试题
- 简单LRU算法实现的Cache(C++)
- 基于LRU算法的Java对象池设计
- leetcode LRU Cache(高级缓存的最近最少使用算法实现)
- 基于LinkedHashMap实现LRU缓存调度算法原理
- 简单LRU算法实现的Cache(C++)
- 爬虫中的基于LRU算法的URL过滤器