显示为未排序的项目 map.put("加利福尼亚","萨克拉门托"); map.put(" Oregon"," Salem"); map.put(" Washington"," Olympia"); 的System.out.println(地图);
map.put("Alaska", "Juneau");
System.out.println(map);
答案 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}