HashTable 的存取问题!

lmh79 2002-09-09 02:54:45
String [] arrTempPageList=new String[2];
while (con.next()){
String PageId=con.getCol(1);
arrTempPageList[0]=con.getCol(2);
arrTempPageList[1]=con.getCol(3);

pages.put(PageId,arrTempPageList);
}

一个表有三个字段,例如:
id
field1
field2
我希望用arrTempPageList数组来存放field1,field2,然后PageId存放id,然后将这样一张表的数据存到HashTable中,你看上面的代码对吗?取HashTable中的数组数据怎么取呢?

谢谢您的回答!
...全文
43 点赞 收藏 10
写回复
10 条回复
joyrush 2003年03月05日
java.util.Hashtable ht = (java.util.Hashtable)vc.elementAt(i);
这样也可以??
为什么Vector会转换城hashtable ???
而且Vector中 get和elementAt 有什么不同??
回复 点赞
lmh79 2002年09月10日
jamsa(德德)
crm2000(浏览器)
两位是对的,我在之前试着改进去就对了!
谢谢!
回复 点赞
netstarry 2002年09月09日
HashTable类保存的只是该对象的指针,并不保存该对象,你可以使用

HashTable类的get函数取的保存的数据,该函数取作为 键 的对象,返回为
object类型的数据,你需要根据实际做一下转换,比如是
String a = pages.get(PageId);
回复 点赞
crm2000 2002年09月09日
nod jamsa,数组分配内存得到循环里面去。
回复 点赞
wjmmml 2002年09月09日
用con.getXXX("字段名");
回复 点赞
jamsa 2002年09月09日
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: jamsa3210@163.com
回复 点赞
lmh79 2002年09月09日
我那样做的结果好像后面的数据覆盖了前面的数据,PageId存的没有错,arrTempPageList数组只有最后一个数据!
回复 点赞
linquan333 2002年09月09日
用get(Object key)的方法取出数组,再取数组中各值。与写入顺序相反
回复 点赞
alphazhao 2002年09月09日
sorry:笔误了一下,后面的vc就是前面的vect,即存放结果集的向量Vector
回复 点赞
alphazhao 2002年09月09日
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表的时候不多
回复 点赞
发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告