gpt4 book ai didi

java - 为什么 HashMap 的 toString 函数以不同的顺序打印自己?

转载 作者:搜寻专家 更新时间:2023-10-30 21:14:21 24 4
gpt4 key购买 nike

我有一段非常简单的代码,我只是想尝试在 Map 中使用不同类型的对象。

//There's a bit of spanish, sorry about that
//just think 'persona1' as an object with
//a string and an int
Map mapa = new HashMap();
mapa.put('c', 12850);
mapa.put(38.6, 386540);
mapa.put("Andrés", 238761);
mapa.put(14, "Valor de 14");
mapa.put("p1", persona1);
mapa.put("Andrea", 34500);

System.out.println(mapa.toString());

然后我希望从控制台得到类似的东西:

{c=12850, 38.6=386540, Andrés=238761, 14=Valor de 14, p1={nombre: Andres Perea, edad: 10}, Andrea=34500}

但令我惊讶的是,我得到了不同顺序的相同数据:

{38.6=386540, Andrés=238761, c=12850, p1={nombre: Andres Perea, edad: 10}, Andrea=34500, 14=Valor de 14}

如果我尝试其他类型的对象,即使只是字符串或数字类型,也没关系,它总是做同样的事情,它会产生不同的没有明显任何意义的顺序。

有人能告诉我为什么会这样吗?还是我遗漏了一些太明显的东西?

我正在使用 Java 1.7 和 Eclipse Juno。

最佳答案

根据 Oracle 的文档

The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls. This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.

引用HashMap JavaDocs。

关于java - 为什么 HashMap 的 toString 函数以不同的顺序打印自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com