看你想怎么样访问数据,如果是顺序读取的话可以用ArrayList。
如果要根据某个值访问则用HashMap。

解决方案 »

  1.   

    请问 lhj(努力加油)我要找的就是HashMap,请问你有具体的实现代码吗?先谢
      

  2.   

    数据量太大的话,最好不要放到内存中!
    读出来后加到hashmap就可以了阿
      

  3.   

    public class ExmpleDaoImpl implements ExampleDao {
      public List getExampleList(){
        .....
        //读取数据库
        .....
        return ...;
      }
    }public class ExmpleServiceImpl implements ExampleService {private ExmpleDao dao;//用工厂类获得或使用Spring管理Bean
    //缓冲容器
    private final static Map exampleCacheMap=Collection.synchronizedMap(new HashMap())
    public List getExampleList(){
      String cacheKey=getCacheKey(null,null);
      Object obj=exampleCacheMap.get(cacheKey);
      if(obj==null){
       obj=dao.getExampleList();
       exampleCacheMap.put(cacheKey,obj);
      }
      return (List)obj;
    }...
    //在其它更新数据库的方法中使用合适的策略更新exampleCacheMap
    ...//根据查询参数得到cache key
    private String getCacheKey(String[] params,Object[] values){
      ....
      return ...;
    }
    }
      

  4.   

    原来搂主还没有解决问题啊,我给你一个我自用的例子好了假设我有一张表T_NAME2MEMO,里面有2字段NAME,MEMO,意思是某东西名字和说明,
    现在需要利用hashmap来实现根据名字name来查找说明memo生成hashmap的代码如下:HashMap hmET = new HashMap();
    try{
        stm = conn.createStatement();
        rs = stm.executeQuery("select NAME,MEMO from T_NAME2MEMO");
        hmET.clear();
        while(rs.next()){
            hmET.put(rs.getString("NAME"),
                     rs.getString("MEMO"));
        }
        if(rs != null)
            rs.close();
    }
    catch(Exception ex){
        ex.printStackTrace();
    }
    使用的代码如下,得到的retStr就是根据你的参数yourname得到的说明:String retStr = (String) hmET.get(yourname);更多的功能请自己考虑。put(key,value) value可以是一条记录的对象。