美文网首页
使用HashMap做一个缓存案例【缓存一张图片】

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

作者: 我是一根聪 | 来源:发表于2020-12-08 16:57 被阅读0次

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; 

 } 

}

相关文章

网友评论

      本文标题:使用HashMap做一个缓存案例【缓存一张图片】

      本文链接:https://www.haomeiwen.com/subject/lrkqgktx.html