2013.04.03——— android 图片缓存之一LinkedHashMap介绍

本文详细介绍了如何利用LinkedHashMap特性实现LRU缓存机制,包括其核心概念、代码实现及实际应用效果。通过示例代码演示了如何在缓存中维护最近最少使用的元素,同时解释了第三个参数的作用及其对缓存行为的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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缓存

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删除了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值