Hashmap按字母顺序排列?

时间:2017-08-08 17:00:15

标签: java hashmap

我有一个HashMap定义如下:

private final Map<String, DataTable> reports = new HashMap();

当我将新条目放入此HashMap时,它们会根据键以字母顺序排列。它为什么这样做?如何按照我将它们添加到HashMap中的顺序将它们放入?

4 个答案:

答案 0 :(得分:2)

HashMap确实明确定义了您添加的元素的NO顺序。与HashSet中的元素一样,它们的哈希码是有序的,这或多或少是随机的。

如果您想按插入顺序保留地图中的订单,则可以使用LinkedHashMap代替。如果元素应在插入后进行排序,请使用TreeMap

答案 1 :(得分:0)

HashMap的重点在于你放弃对排序的控制,这样你就可以在插入和搜索方面获得性能提升,以及其他好处。要收回对订购的控制权,请使用SortedMap

答案 2 :(得分:0)

LinkedHashMap- preserve the insertion order.
TreeMap - Elements sorted after insertion.

HashMap不保持任何插入元素的顺序。

答案 3 :(得分:0)

HashMap不会以添加方式添加值,只是根据键随机添加值。要按添加使用LinkedHashMap的顺序添加值,或者如果希望按字母顺序排序地图,则使用TreeMap。我希望这能清除你的怀疑。