HashMap keySet()在什么情况下是有序不确定的

问题描述 投票:0回答:1

文档https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

此类不保证地图的顺序; 特别是,它不保证顺序保持不变 随着时间的推移。

但是我做了一些实验

var first = new HashMap<String, Object>();
first.put("a", 1)
first.put("b", 2);
first.put("c", null)

first.keySet()
订单始终是
[a, b, c]

因此,如果我将

String
Integer
作为
HashMap
的键,那么对于相同键和值的任何其他
HashMap
实例,顺序是否相同且具有确定性?

java hashmap
1个回答
0
投票

正如文档所建议的,顺序确实是不确定的。

尝试在 HashMap 中使用更多数据运行代码以查看差异。

如果您的要求需要顺序,请尝试使用 LinkedHashMap 来维护插入顺序。 (因为它内部实现了 LinkedList。)

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.