[問題] 使用Enumeration取出Hashtable值的順序問題

看板java作者 (cat)時間14年前 (2011/07/06 15:29), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
程式如下: 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
Hash應該沒有一定的順序...
07/06 18:53, 1F

07/07 22:30, , 2F
如果沒記錯 Hashtable 沒有一定的順序性~
07/07 22:30, 2F
文章代碼(AID): #1E50xkJj (java)