清华大佬耗费三个月吐血整理的几百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()); } } }