作者catjimmy (cat)
看板java
标题[问题] 使用Enumertable取出Hashtable值的顺序问题
时间Wed Jul 6 15:29:48 2011
程式如下:
import java.util.Vector;
import java.util.Hashtable;
import java.util.Enumeration;
class Test{
private static Hashtable tools = new Hashtable();
public static void main (String args[]){
String array[] = {"Hello","World","Jimmy","World"};
//宣告含有两个World的字串阵列
System.out.println("World is in array:");
arraysearch(array,"World");
//呼叫方法传入阵列及搜寻字
Enumeration ee = tools.keys();
String key = null;
while(ee.hasMoreElements()){
key = (String)ee.nextElement();
Object obj = tools.get(key);
System.out.println(key+"->"+obj);
}
}
//使用Enumeration列举Hashtable的值
public static void arraysearch(String array[], String mark){
for (int i=0;i<array.length;i++){
if (array[i].equals(mark)){
tools.put(Integer.toString(i),array[i]);
//将搜寻到的阵列索引及值存到Hashtable
}
}
}
}
程式执行出来的结果是:
World is in array:
3->World
1->World
请问为什麽会反过来呢@@?存进去的顺序跟取出来的顺序看起来都对呀?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.120.0.83
1F:→ ken915007:Hash应该没有一定的顺序... 07/06 18:53
2F:推 joetsai:如果没记错 Hashtable 没有一定的顺序性~ 07/07 22:30