参考: http://blog.csdn.net/miraclestar/article/details/6959416
http://inter12.iteye.com/blog/716236
我们用LinkedHashMap来实现lru缓存
public class TestLinkedHashMap { public static void main(String[] args) { LinkedHashMap<String, Integer> map = new LinkedHashMap<String, Integer>(3, .75f, true){ @Override protected boolean removeEldestEntry( java.util.Map.Entry<String, Integer> eldest) { return size() > 3; } }; for(int i=0;i<3;i++){ map.put(i+"", i); } for(Iterator iter = map.values().iterator();iter.hasNext();){ System.out.println(iter.next()); } map.get("0"); map.put("4", 4); for(Iterator iter = map.values().iterator();iter.hasNext();){ System.out.println(iter.next()); } } }
结果:
0 1 2 2 0 4
可以看出来 这样就会删除最少使用的item了
关于第三个参数: 如果为false 就是按照 插入顺序 为true 就是按访问的顺序排序
如果 没有map.get("0"); 那么结果就为
0 1 2 1 2 4
因为我使用了 0 所以 就把1删除了