[問題] 使用Enumeration取出Hashtable值的順序問題
程式如下:
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
→
07/06 18:53, , 1F
07/06 18:53, 1F
推
07/07 22:30, , 2F
07/07 22:30, 2F