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 map=new HashMap();
/*使用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;
}
}
网友评论