[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
2022-03-04 13:15:14
質問
私は非常にシンプルなコードを持っていて、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を使っています。
どのように解決するのですか?
オラクルのドキュメントによると
<ブロッククオートHashMapクラスはHashtableとほぼ同じですが、非同期であることとNULLを許容していることが異なります。このクラスはマップの順序を保証しません。特に、時間が経っても順序が一定であることは保証しません。
参照 ハッシュマップ JavaDocsを参照してください。
関連
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] ヘッドリカーシオンとテールリカーシオンの違い [重複]について
-
[解決済み】sumの順番を変えると違う結果になるのはなぜですか?
-
[解決済み】Java HashMapは、同じハッシュコードを持つ異なるオブジェクトをどのように処理するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] javax.naming.NameNotFoundException
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] init-paramとcontext-param
-
[解決済み】Java HashMapは、同じハッシュコードを持つ異なるオブジェクトをどのように処理するのですか?