为什么Hashmap没有按顺序显示?

时间:2015-02-13 01:31:15

标签: java hashmap

显示为未排序的项目         map.put("加利福尼亚","萨克拉门托");         map.put(" Oregon"," Salem");         map.put(" Washington"," Olympia");         的System.out.println(地图);

    map.put("Alaska", "Juneau");
    System.out.println(map);

3 个答案:

答案 0 :(得分:4)

java中的HashMaps没有排序!

  • HashMap绝对不保证迭代顺序。它 在添加新元素时,可以(并且将会)完全改变。

  • TreeMap将根据"自然排序"进行迭代。的钥匙 根据他们的compareTo()方法(或外部提供的方法) 比较器)。另外,它实现了SortedMap接口, 其中包含依赖于此排序顺序的方法。

  • LinkedHashMap将按照条目的放置顺序进行迭代 进入地图

答案 1 :(得分:2)

因为HashMap不是有序集合。他们不关心你放置什么订单,也不保证他们存储的顺序。

如果您需要订购的HashMap,请使用LinkedHashMap

答案 2 :(得分:0)

我试试看,我的印刷品是:

{California=Sacramento, Oregon=Salem, Washington=Olympia}
{California=Sacramento, Oregon=Salem, Washington=Olympia, Alaska=Juneau}

Alaska=Juneau显示在最后。

但TreeMap是order.print:

{Alaska=Juneau, California=Sacramento, Oregon=Salem, Washington=Olympia}