java中通过Map对象创建缓存,可定义缓存时间
先看效果:
上代码:
工具类
// An highlighted block
package com.test.util.mapHc;
import org.apache.poi.ss.formula.functions.T;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
public class HCUtil {
static String timeKey = "$HCUtilTimeKey_LinkedHashMap";
static LinkedHashMap<String,Object> map = new LinkedHashMap<>();
//添加缓存带有时间
public static void put(String key,Object value,long savetime){
long nowTime = new Date().getTime();
long time = nowTime+savetime;
map.put(key,value);
map.put(timeKey+key,time);
}
//添加缓存无时间限制
public static void put(String key,Object value){
map.put(key,value);
}
//删除缓存
public static void del(String key){
map.remove(key);
}
//查看缓存是否存在
public static boolean isExist(String key){
Object o = map.get(timeKey + key);
if (o==null){
return false;
}
long saveTime = (long)o;
long time = new Date().getTime();
if (time>=saveTime){
map.remove(key);
map.remove(timeKey + key);
return false;
}
return true;
}
//获取缓存
public static Object get(String key){
Object o = map.get(timeKey + key);
if (o==null){
return null;
}
long saveTime = (long)o;
long time = new Date().getTime();
if (time>=saveTime){
map.remove(key);
map.remove(timeKey + key);
return null;
}
return map.get(key);
}
}
互相学习相互进步!