我想修復一個代碼,我不能在這裏發佈,所以我有一個修剪版本在這裏。奇怪的行爲,而使用HashMap
我使用HashMap時出現不穩定的輸出。
HashMap<Integer, String> test= new HashMap<>();
test.put(1, "one");
test.put(2, "one");
test.put(3, "one");
test.put(4,"four");
test.put(5, "one");
test.put(6, "one");
test.put(10, "one");
test.put(19, "one");
test.put(20, "Sixteen");
System.out.println(test);
HashMap<Integer, String> test3= new HashMap<>(200);
test3.put(1, "one");
test3.put(2, "one");
test3.put(3, "one");
test3.put(4,"four");
test3.put(5, "one");
test3.put(6, "one");
test3.put(10, "one");
test3.put(19, "one");
test3.put(20, "Sixteen");
System.out.println(test3);
輸出
test --> {1=one, 19=one, 2=one, 3=one, 4=four, 20=Sixteen, 5=one, 6=one, 10=one}
test3--> {1=one, 2=one, 3=one, 4=four, 5=one, 6=one, 10=one, 19=one, 20=Sixteen}---> My desired output.
爲什麼結果不同,即使輸入值是相同的。這種排序有何不同,即存儲元素?
我無法使用第二種方法,因爲大小是動態的,它會根據應用程序不斷變化。我可以使用相同的TreeMap,併爲所有值獲得一致的輸出。
你認爲在第一方法中的大小是靜態的? – SpringLearner
HashMap不保證訂單 - 按照Java API –
您*不能*使用HashMap並期望一致的排序。改爲使用LinkedHashMap或TreeMap。 –