LRU简介
内存淘汰策略:删除最近最少使用的
Java实现
import java.util.LinkedHashMap;
import java.util.Map;
public class LRUCache<K, V> extends LinkedHashMap<K,V> {
private final int CACHE_SIZE;
public LRUCache(int cache_size) {
super((int) Math.ceil(cache_size / 0.75), 0.75f, true);
CACHE_SIZE = cache_size;
}
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > CACHE_SIZE;
}
}
用例
import java.util.Map;
public class LRUCacheTest {
public static void main(String[] args) {
LRUCache<Integer,String> map = new LRUCache<>(5);
map.put(1,"张三1");
map.put(2,"张三2");
map.put(3,"张三3");
map.put(4,"张三4");
map.get(1);
map.put(5,"张三5");
map.put(6,"张三6");
map.put(7,"张三7");
for(Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
}
}
}
本文介绍了一种使用Java实现的LRU(最近最少使用)缓存策略,通过自定义LinkedHashMap来达到自动淘汰最近最少使用的元素的目的。文章提供了一个完整的LRU缓存类实现,并附带了测试用例,展示了如何创建一个限定大小的缓存并进行基本操作。
1891

被折叠的 条评论
为什么被折叠?



