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<Object, Object> store;
private static final int MAX = 1000; public LruCache() {
this.store = new LinkedHashMap<Object, Object>() {
private static final long serialVersionUID = -3834209229668463829L;; /**
* 当满足一定条件时删除Map中的年老的Entry
*/
@Override
protected boolean removeEldestEntry(Entry<Object, Object> 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);
}
} }

最新文章

  1. nslookup
  2. 通过seekBar改变图片的透明度
  3. 使用ab进行压力测试
  4. Win2K3一句话开3389
  5. jquery的一些技巧总结
  6. VMware下ubuntu与win8共享文件时/mnt/hgfs目录为空的解决办法
  7. C#整理1——进制转换
  8. dev layoutControl 控件使用
  9. 在Activity之间传递数据—获取Activity返回的数据
  10. 常用 SQL语句
  11. 老李分享:大数据测试之HDFS文件系统
  12. alive pdf 基本用法
  13. jq-css、class、属性操作
  14. hdpi对应分辨率
  15. MySQL 组提交(group commit)
  16. 自学Linux Shell12.1-结构化命令if-then
  17. System.Threading.Timer
  18. shared_ptr(作为局部变量返回)
  19. (转)GCT之逻辑经验总结(拿来主义)
  20. 项目冲刺Beta第一篇博客

热门文章

  1. python 全栈开发,Day72(昨日作业讲解,昨日内容回顾,Django多表创建)
  2. 读取web.config和app.config配置文件
  3. list的遍历
  4. bootstrap——辅助类和响应式工具类
  5. mydate97时间控件的使用
  6. linux命令之grep用法
  7. Linux 文件系统与挂载详解
  8. BZOJ1059 [ZJOI2007]矩阵游戏 二分图匹配 匈牙利算法
  9. 全排列问题(递归&amp;非递归&amp;STL函数)
  10. UVA 624 CD[【01背包】(输出路径)