hashmap键集自动排序

时间:2013-07-28 16:34:05

标签: java hashmap

    HashMap<String, String[]> content = new HashMap<String, String[]>();

    content.put("Help", new String[]{"About"});
    content.put("View", new String[]{"Grid"});
    content.put("File", new String[]{"Import", "Export"});

    for(String key : content.keySet()){
        System.out.println(key);
    }

以上代码记录:

View
Help
File

但为什么会这样排序?

2 个答案:

答案 0 :(得分:15)

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

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

  3. Source

答案 1 :(得分:3)

您在HashMap中看到条目的顺序取决于密钥的哈希码和我认为的桶中条目的顺序,它取决于实现,但不依赖于{{ 1}}用于排序。而HashMapLinkedHashMap确实保证了某个订单。