HashTable存放数据我没试验过,不好乱说
我曾这么用过HashTable以提高运行速度
比如我用vector向量来存放查询的结果集:
      Vector vect = new Vector();//用于存放数据记录
      vect.removeAllElements();//初始化向量对象
      while(rs.next()) {//依次读取数据结果集
        Vector rec_vector=new Vector();
        //从结果集中取数据放入向量rec_vector中,此处以你的为例子字段
        rec_vector.addElement(rs.getString("id"));
        rec_vector.addElement(rs.getString("field1");
        rec_vector.addElement(rs.getString("field2"));
        vect.addElement(rec_vector);//向量rec_vector加入向量vect中
      }
……
然后对vector to HashTable处理:
      for(int i=0;i<vc.size();i++) {
        java.util.Hashtable ht = (java.util.Hashtable)vc.elementAt(i);
        //取HashTable表中数据:
        sStr1 = (String)ht.get("id");
        sStr2 =(String)ht.get("field1");
        sStr3 = (String)ht.get("field2");     
      }  这种处理似乎不太方便,不知道能否给予你一点启发
老实说我用过HashTable表的时候不多

解决方案 »

  1.   

    sorry:笔误了一下,后面的vc就是前面的vect,即存放结果集的向量Vector
      

  2.   

    用get(Object key)的方法取出数组,再取数组中各值。与写入顺序相反
      

  3.   

    我那样做的结果好像后面的数据覆盖了前面的数据,PageId存的没有错,arrTempPageList数组只有最后一个数据!
      

  4.   

    while (con.next()){
    String [] arrTempPageList=new String[2];
           String PageId=con.getCol(1);
           arrTempPageList[0]=con.getCol(2);
           arrTempPageList[1]=con.getCol(3);       pages.put(PageId,arrTempPageList);
         }修改一下代码,记住,指针型变量指向一片存储区,如果存储区被更改,那么指针所指内容也就变了,如果说到这你还不清楚,请e_mail:  [email protected]
      

  5.   

    nod jamsa,数组分配内存得到循环里面去。
      

  6.   

    HashTable类保存的只是该对象的指针,并不保存该对象,你可以使用HashTable类的get函数取的保存的数据,该函数取作为 键 的对象,返回为
    object类型的数据,你需要根据实际做一下转换,比如是
    String a = pages.get(PageId);
      

  7.   

    jamsa(德德) 
    crm2000(浏览器) 
    两位是对的,我在之前试着改进去就对了!
    谢谢!
      

  8.   

    java.util.Hashtable ht = (java.util.Hashtable)vc.elementAt(i);
    这样也可以??
    为什么Vector会转换城hashtable ??? 
    而且Vector中 get和elementAt 有什么不同??