【问题标题】:Why Hashmap is not displaying in order? [duplicate]为什么Hashmap没有按顺序显示? [复制]
【发布时间】:2015-02-13 01:31:15
【问题描述】:

项目显示为未排序 map.put("加利福尼亚", "萨克拉门托"); map.put("俄勒冈", "塞勒姆"); map.put("华盛顿", "奥林匹亚"); System.out.println(map);

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

【问题讨论】:

  • 为什么要显示在最后?
  • 这是一项功能。考虑改用 TreeMap。

标签: java hashmap


【解决方案1】:

Java 中的 HashMap 没有排序!

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

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

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

【讨论】:

    【解决方案2】:

    我试了一下,我的打印是:

    {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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多