私はこの非常に単純なコードを持っており、マップ内のさまざまな種類のオブジェクトで少し遊んでみました。
//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 を使用しています。