您的位置:首页 > 其它

基于LRU算法的小Cache

2020-03-01 06:34 169 查看

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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
chenmian7997 发布了0 篇原创文章 · 获赞 0 · 访问量 4 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: