Hashtable的小问题!

gwang119 2005-02-06 09:36:33
我想print出Hashtable中的key值,但是不明白显示的结果顺序是这样的?
代码:
import java.util.*;

public class Table{

Hashtable table = new Hashtable(3);

public Table(){
table.put("aaa","1");
table.put("bbb","2");
table.put("ccc","3");


for(Enumeration e = table.keys();e.hasMoreElements();){
System.out.println(e.nextElement());
}
}

public static void main(String[] args){

Table mytable = new Table();
}
}

运行结果:
ccc
aaa
bbb

为什么呢?
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
labrun 2005-02-06
  • 打赏
  • 举报
回复
jdk1.4中增加了一个LinkedHashMap,迭代的时候能保持元素的顺序。
gwang119 2005-02-06
  • 打赏
  • 举报
回复
谢谢!结贴了!
loveunittesting 2005-02-06
  • 打赏
  • 举报
回复
散列表还能有什么顺序,而且算法也不唯一。就是按照key取出的
ywb1973 2005-02-06
  • 打赏
  • 举报
回复
不知道,但是肯定是有规律的。
我试了如下例子:
table.put("aaa","1");
table.put("bbb","2");
table.put("ccc","3");
table.put("ddd","4");
table.put("eee","5");
table.put("fff","6");
table.put("ggg","7");
table.put("hhh","8");
table.put("iii","9");
table.put("jjj","0");
结果显示是这样的:
hhh
ccc
ggg
bbb
fff
aaa
jjj
eee
iii
ddd
jiangx123 2005-02-06
  • 打赏
  • 举报
回复
list ,tree 都排序的,hashtable不排序
GJA106 2005-02-06
  • 打赏
  • 举报
回复
通过Enumeration和Iterator来取集合数据,不是按设置时顺序来取值,而是按XXX算法来取。如果想按设置顺序来取,只能通过size()取得大小,然后用循环来取。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧