自己写的一个缓存类、通俗易懂、老少皆宜!--叨、校长
package com.master.common;
import java.util.List;
/**
* 一个缓存实例
* @example
* String name="test";
* List list=null;
* CacheData c=CacheData.matchCahceData(name);
* if(c.getData()==null){
* list=jokeService.findJokeList();//从数据库获取数据
* c.setData(list);
* }else{
* list=c.getData();
* }
* @author 叨、校长
* @datatime 2012-11-04
*/
public class CacheData{
//最大缓存记录
private final static int MAX_SIZE=10;
private static CacheData[] datas=new CacheData[MAX_SIZE];
//每条缓存的名称
private final String name;
//每条缓存的数据
private List data=null;
//使用单例模式、防止外部实例化该类
private CacheData(String name){
this.name=name;
}
public String getName(){
return name;
}
public List getData(){
return data;
}
public void setData(List data) {
this.data = data;
}
//判读缓存中是否有该名称的记录,如果没有则添加缓存实例并且返回该缓存实例
//如果缓存满了,则把第一条记录更新为新缓存,并且返回该缓存实例
public static CacheData matchCahceData(String name){
CacheData cache;
int i=0;
int j=1;
for(;i<MAX_SIZE;i++){
if(datas[i]!=null){
if(datas[i].getName().equals(name)){
return datas[i];
}
j++;
}
}
cache=new CacheData(name);
if(j==MAX_SIZE){
datas[0]=cache;
}else{
datas[j--]=cache;
}
return cache;
}
}