您的位置:首页 > 其它

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

2016-02-27 13:27 405 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: