10行Java代码实现LRU缓存

Dec 27, 2015 • Changwl


介绍

阅读了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;
    }

}

参考

10行Java代码实现最近被使用(LRU)缓存

LRU


上一篇博客:LinkedHashMap工作原理
下一篇博客:【转】java内存模型