使用HashMap做一个缓存案例【缓存一张图片】




import java.util.HashMap;
import java.util.Map;


public class HashMapCache {


public static void main(String[] args) {
//通过方法实例化HashMapCache这个类
HashMapCache cache=new HashMapCache();
cache.loadImage("abcd");//内存中没有,先下载
cache.loadImage("abcd");//内存中已经存在,直接获取
cache.loadImage("abcd");//内存中已经存在,直接获取
}
//假设图片下载成功缓存到本地,键值为图片的网址url,value值为真实的图片
Map<String , Picture> map=new HashMap<String,Picture>();
/*使用hashmap缓存图片,从指定的网址url下载图片
* 如果缓存中存在图片则不需要重新下载直接从缓存中获取*/
public Picture  loadImage(String url) {
//先判断当前缓存中是否存在对应的图片,若存在此图片则不需要重新下载直接从缓存中获取
if (map.containsKey(url)) {
Picture picture=map.get(url);
//缓存中已有图片,直接使用
System.out.println("缓存中已经存在"+url+"图片,直接从缓存中获取");
return picture;
}else {
//缓存中找不到需要下载的图片,先下载图片再缓存到内存中
//假设picture2是下载的图片
Picture picture2=new Picture(url);
//缓存到内存中
map.put(url,picture2);

System.out.println("缓存中不存在"+url+"图片,先从网络下载,之后再加载到缓存");
return picture2;
}
}
}
//声明一个图片这个类
class Picture{
String name;
//使用构造方法
public Picture (String name) {
super();
this.name=name;
}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值