2013.04.03——— android 图片缓存之一LinkedHashMap介绍
参考:[url]http://blog.youkuaiyun.com/miraclestar/article/details/6959416[/url]
[url]http://inter12.iteye.com/blog/716236[/url]
我们用LinkedHashMap来实现lru缓存
结果:
可以看出来 这样就会删除最少使用的item了
关于第三个参数: 如果为false 就是按照 插入顺序 为true 就是按访问的顺序排序
如果 没有map.get("0"); 那么结果就为
因为我使用了 0 所以 就把1删除了
参考:[url]http://blog.youkuaiyun.com/miraclestar/article/details/6959416[/url]
[url]http://inter12.iteye.com/blog/716236[/url]
我们用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删除了