我正在嘗試HashMap使用LinkedHashMapand對輸出進(jìn)行排序TreeMap。當(dāng)我TreeMap用來整理HashMap它時(shí),它就像一種魅力。 Map<Integer, String> hMap = new HashMap<Integer, String>(); hMap.put(40, "d"); hMap.put(10, "a"); hMap.put(30, "c"); hMap.put(20, "b"); System.out.println(" "); System.out.println("before"); for (Map.Entry m1 : hMap.entrySet()) { System.out.print(m1.getKey() + " " + m1.getValue() + " "); } System.out.println("after"); Map<Integer, String> hTree = new TreeMap<Integer, String>(hMap); for (Map.Entry m2 : hTree.entrySet()) { System.out.print(m2.getKey() + " " + m2.getValue() + " "); }輸出 :before20 b 40 d 10 a 30 cafter10 a 20 b 30 c 40 d但是當(dāng)我嘗試LinkedHashMap排序時(shí),HashMap它似乎不起作用。 Map<Integer, String> hMap = new HashMap<Integer, String>(); hMap.put(10, "a"); hMap.put(20, "b"); hMap.put(30, "c"); hMap.put(40, "d"); System.out.println("before"); for (Map.Entry m1 : hMap.entrySet()) { System.out.print(m1.getKey() + " " + m1.getValue() + " "); } System.out.println(" "); System.out.println("after"); LinkedHashMap<Integer, String> lhMap = new LinkedHashMap<Integer, String>(hMap); Iterator it = lhMap.entrySet().iterator(); while (it.hasNext()) { Map.Entry me = (Map.Entry) it.next(); System.out.print(me.getKey() + " " + me.getValue()+" "); }輸出 :before20 b 40 d 10 a 30 c after20 b 40 d 10 a 30 c 誰能告訴我為什么這種排序不起作用?那是因?yàn)長inkedHashMap正在過濾HashMap嗎?如果是為什么TreeMap對那個(gè)問題免疫?
添加回答
舉報(bào)
0/150
提交
取消