框架基础(1)使用LinkedHashMap实现LRU缓存
来源:互联网 发布:手机淘宝秒杀软件下载 编辑:程序博客网 时间:2024/06/06 11:01
public class LRUCache<K, V> extends LinkedHashMap<K, V> {private static final long serialVersionUID = 3755413498196039249L;private static final float DEFAULT_LOAD_FACTOR = 0.75f;private static final int DEFAULT_MAX_CAPACITY = 1000;private volatile int maxCapacity;private final Lock lock = new ReentrantLock(); public LRUCache() { this(DEFAULT_MAX_CAPACITY); } public LRUCache(int maxCapacity) { super(16, DEFAULT_LOAD_FACTOR, true); this.maxCapacity = maxCapacity; } @Override protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) { return size() > maxCapacity; } @Override public boolean containsKey(Object key) { try { lock.lock(); return super.containsKey(key); } finally { lock.unlock(); } } @Override public V get(Object key) { try { lock.lock(); return super.get(key); } finally { lock.unlock(); } } @Override public V put(K key, V value) { try { lock.lock(); return super.put(key, value); } finally { lock.unlock(); } } @Override public V remove(Object key) { try { lock.lock(); return super.remove(key); } finally { lock.unlock(); } } @Override public int size() { try { lock.lock(); return super.size(); } finally { lock.unlock(); } } @Override public void clear() { try { lock.lock(); super.clear(); } finally { lock.unlock(); } }public int getMaxCapacity() {return maxCapacity;}public void setMaxCapacity(int maxCapacity) {this.maxCapacity = maxCapacity;}}
0 0
- 框架基础(1)使用LinkedHashMap实现LRU缓存
- 使用LinkedHashMap实现LRU缓存
- LinkedHashMap实现LRU缓存算法
- Android使用LinkedHashMap实现一个LRU算法的内存缓存
- 使用 LinkedHashMap 实现 LRU 算法
- 利用LinkedHashMap实现LRU算法缓存
- 如何用LinkedHashMap实现LRU缓存算法
- 如何用LinkedHashMap实现LRU缓存算法
- 如何用LinkedHashMap实现LRU缓存算法
- 如何用LinkedHashMap实现LRU缓存算法
- 深入理解LinkedHashMap实现LRU缓存
- 关于LinkedHashMap实现LRU缓存算法
- LinkedHashMap实现简单的LRU缓存
- 使用LinkedHashMap实现的LRU算法
- 基于LinkedHashMap实现LRU缓存调度算法原理及应用
- 基于LinkedHashMap实现LRU缓存调度算法原理及应用
- 利用LinkedHashMap简单实现基于LRU策略的缓存
- 基于LinkedHashMap实现LRU缓存调度算法原理及应用
- jdk最新版下载及jdk历史版本下载
- MYSQL千万级数据量的优化方法积累
- scaleType 方便查阅
- NC portal保存只能获取当前子表选中行的数据集问题
- vue
- 框架基础(1)使用LinkedHashMap实现LRU缓存
- JMS学习八(ActiveMQ支持的传输协议)
- 2015年7月-MFC 网络资源下载系统
- Unity 声音播放管理模块
- easyui-tabs(选项卡)重新打开,数据没有变化!
- C++实验2—简单程序设计
- JAVA/ 将任意数组内的值乱序(生成随机数)的一种方法
- 软件测试概念(一)
- Security problem, see Jack server log