介绍
阅读了LinkedHashMap源码之后,发现LinkedHashMap隐藏实现了LRU算法,本文就是用LinkedHashMap来实现LRU缓存。
LRU-Least Recently Used 近期最少使用算法。
实现
直接上实现。
public class LRUCache<K,V> extends LinkedHashMap<K,V>{
private int cacheSize;
//设置accessOrder = true,实现LRU访问
LRUCache(int initialCapacity,float loadFactor,int cacheSize){
super(initialCapacity,loadFactor,true);
this.cacheSize = cacheSize;
}
//限制缓存的大小
@Override
protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
return size() > cacheSize;
}
}