清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
* 此类通过继承 LinkedHashMap 实现LRU算法(当 accessOrder 设置成 true 时)
*
* @author hanshubo
*
* @param <K>
* @param <V>
*/
public class MyLinkedMap<K, V> extends LinkedHashMap<K, V> {
/**
*
* @param accessOrder
* 设置成 true 时,为最近最少使用(LRU)算法实现, 设置成 false 时,为先进入先过期
*/
public MyLinkedMap(boolean accessOrder) {
super(16, 0.75f, accessOrder);
}
/**
* 队列最大容量,超过此容量时,会将最“旧”数据删除掉
*/
private static final int MAX_ENTRIES = 1000;
/**
* 重写父类方法,实现LRU算法
*/
protected boolean removeEldestEntry(Map.Entry eldest) {
return size() > MAX_ENTRIES;
}
public static void main(String[] args) {
MyLinkedMap<Integer, Integer> map = new MyLinkedMap<Integer, Integer>(false);
map.put(1, 0);
map.put(2, 0);
map.put(3, 0);
map.put(4, 0);
map.put(5, 0);
map.put(2, 0);
map.put(1, 0);
for (Entry<Integer, Integer> e : map.entrySet()) {
System.out.println(e.getKey());
}
}
}