为什么HashMap的toString函数以不同的顺序打印自己?
我有一段非常简单的代码,我只是试图在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。