欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 继承 LinkedHashMap 实现LRU算法,,import java.

来源: javaer 分享于  点击 13922 次 点评:205

Java 继承 LinkedHashMap 实现LRU算法,,import java.


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());}}}
相关栏目:

用户点评