自己写的一个缓存类、通俗易懂、老少皆宜!--叨、校长
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; } }