博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用LinkedHashMap来实现一个使用LRU(Least Recently Used)算法的cache
阅读量:7047 次
发布时间:2019-06-28

本文共 950 字,大约阅读时间需要 3 分钟。

removeEldestEntry在使用put或者putAll方法插入一个新的entry到map中时被调用,是否要删除年老的entry取决于是否满足既定的条件(比如本例中的条件:MAP中entry数量大于1000)。如果MAP表示缓存,这是有用的:它允许MAP通过删除过时条目来减少内存消耗。

import java.util.LinkedHashMap;import java.util.Map;public class LruCache {    private final Map
store; private static final int MAX = 1000; public LruCache() { this.store = new LinkedHashMap
() { private static final long serialVersionUID = -3834209229668463829L;; /** * 当满足一定条件时删除Map中的年老的Entry */ @Override protected boolean removeEldestEntry(Entry
eldest) { return size() > MAX; } }; } public void put(Object key, Object value) { synchronized (LruCache.class) { store.put(key, value); } } public Object get(Object key) { synchronized (LruCache.class) { return store.get(key); } }}

 

转载地址:http://tozol.baihongyu.com/

你可能感兴趣的文章
sql 基础练习 计算7天各个时间点的总和 group by order mysql一次查询多个表
查看>>
MySQL高级-索引优化
查看>>
SQL中Group By的使用
查看>>
RateLimiter 限流
查看>>
资深设计师Tony Ventrice解析手机游戏开发的四个层次
查看>>
Swift入门篇-结构体
查看>>
Using the Eclipse Jobs-API(转载)
查看>>
GCC编译过程
查看>>
AE intersect、clip的实现
查看>>
图解使用Win8Api进行Metro风格的程序开发一----建立我们的导航架构
查看>>
iOS开发过程中使用Core Data应避免的十个错误
查看>>
I.MX6 wpa_cli 使用
查看>>
windows使用nginx实现网站负载均衡测试实例
查看>>
DotLiquid模板引擎简介
查看>>
5.Flask-Migrate
查看>>
c# 正则表代式的分组和批评模式 .
查看>>
编程之美-3.1-字符串移位包含的问题
查看>>
EPC是什么
查看>>
T-SQL查询进阶--数据集之间的运算
查看>>
【Vegas原创】Linux下unrar安装与配置
查看>>