文档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
实例,顺序是否相同且具有确定性?
正如文档所建议的,顺序确实是不确定的。
尝试在 HashMap 中使用更多数据运行代码以查看差异。
如果您的要求需要顺序,请尝试使用 LinkedHashMap 来维护插入顺序。 (因为它内部实现了 LinkedList。)
希望这有帮助。