[解決済み] Java HashMapのkeySet()の繰り返し順序は一貫していますか?
2023-05-12 13:15:57
質問
MapのkeySet()メソッドから返されるSetは、特定の順序を保証するものではないと理解しています。
私の質問は、それが 同じ の順序を保証するのでしょうか? 例えば
Map<K,V> map = getMap();
for( K k : map.keySet() )
{
}
...
for( K k : map.keySet() )
{
}
上記のコードで、マップが ではなく が変更された場合、keySets の反復処理は同じ順序になるのでしょうか。 Sun の jdk15 を使用すると、それは はします。 しかし、この動作に依存する前に、すべてのJDKが同じことを行うかどうかを知りたいのです。
EDIT
回答を見ていると、あてにならないんですね。 残念です。 私は、私の順序を保証するために新しいコレクションを構築する必要がないことを期待していました。 私のコードは、繰り返し処理を行い、いくつかのロジックを実行し、同じ順序で再度繰り返し処理を行う必要がありました。 私はただ、順序を保証するキーセットから新しいArrayListを作成します。
どのように解決するのですか?
APIドキュメントに保証すると記載されていないのであれば、それに依存してはいけません。同じベンダーの JDK であっても、JDK のリリースごとに動作が変わる可能性すらあります。
セットを入手して、自分でソートすればいいだけだから簡単でしょ?
関連
-
Javaでよくある構文エラー
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] Javaでリストを反復処理する方法
-
[解決済み] Mapを実装し、挿入順序を保持するJavaクラス?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
型に解決できない エラー解決
-
プロジェクトの依存関係を解決できない。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] LinkedHashMapオブジェクトからキーと値を返す際の順序は保証されていますか?