高手请来,帮帮看Hashtable的问题

xiasys 2008-11-23 12:19:30
在java中用hashtable put进来的key值后
取出来的后跟放进来的顺序不一样,
有没有方法可以解决?
如:
Hashtable ht = new Hashtable();
ht.put("awrewe", "3");
ht.put("d23", "2");
ht.put("c113", "1");
Enumeration evn = ht.keys();
while(evn.hasMoreElements())
System.out.println(evn.nextElement());


打印出来是:
d23
c113
awrewe
我要想得到原来的顺序:
awrewe
d23
c113

...全文
126 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
whlusha720 2008-11-23
  • 打赏
  • 举报
回复
hashtable hashset 都是无序的
用list
Iangao 2008-11-23
  • 打赏
  • 举报
回复
hashtable是按hash值插入的,取出的顺序与插入的顺序不一样, LinkedHashMap是按insert-order取的.
Iangao 2008-11-23
  • 打赏
  • 举报
回复
hashtable是按hash值插入的,取出的顺序与插入的顺序不一样, LinkedHashMap是按insert-order取出的.
me old 2008-11-23
  • 打赏
  • 举报
回复
hashtable没有排序功能吧,用SortedMap吧.
铑枪--突廆孒 2008-11-23
  • 打赏
  • 举报
回复
hashtable是无序的,你如果想要得到原来的顺序,就不要使用hashtable,可以使用其它的比如说:list
Summer_Tiger 2008-11-23
  • 打赏
  • 举报
回复
hashtable已经不推荐使用了,现在大多使用的是hashmap,sortmap,其中sortmap是按照红黑树数据结构排序的
ssqtjffcu 2008-11-23
  • 打赏
  • 举报
回复

package mypack;
import java.util.*;

public class Test {

public static void main(String[] args){
LinkedHashMap<String, String> ht = new LinkedHashMap<String, String>();
ht.put("awrewe", "3");
ht.put("d23", "2");
ht.put("c113", "1");
Set s = ht.keySet();
for(Object o: s) {
String str = (String)o;
System.out.println(str);
}
}
}
/*结果:
awrewe
d23
c113*/
devin-deng 2008-11-23
  • 打赏
  • 举报
回复
自己根据取出来的值排序
devin-deng 2008-11-23
  • 打赏
  • 举报
回复
自己根据取出来的值排序
ssqtjffcu 2008-11-23
  • 打赏
  • 举报
回复

public static void main(String[] args){
LinkedHashMap<String, String> ht = new LinkedHashMap<String, String>();
ht.put("awrewe", "3");
ht.put("d23", "2");
ht.put("c113", "1");
Set s = ht.keySet();
for(Object o: s) {
String str = (String)o;
System.out.println(str);
}
}
chandlersong 2008-11-23
  • 打赏
  • 举报
回复
看下数据算法吧。
简单的说比方说一个容量为100的数组。然后你的一个key值是cat,然后会通过一个hash函数,把cat转换成一个下标。比方说10,然后把这个值传存入这个数组第10个位置上。这就是hashmap。所以不可能出现存取顺序一致的hashmap的。
鸿悯 2008-11-23
  • 打赏
  • 举报
回复
长见识了

62,623

社区成员

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

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