[解決済み] HashMapの反復処理中にキーを削除する方法は?[重複している]
2022-04-23 01:25:50
質問
私は
HashMap
という
testMap
を含む
String, String
.
HashMap<String, String> testMap = new HashMap<String, String>();
マップを反復するとき、もし
value
が指定された文字列と一致する場合、そのキーをマップから削除する必要があります。
すなわち
for(Map.Entry<String, String> entry : testMap.entrySet()) {
if(entry.getValue().equalsIgnoreCase("Sample")) {
testMap.remove(entry.getKey());
}
}
testMap
が含まれています。
"Sample"
からキーを削除することができません。
HashMap
.
その代わり、エラーが発生します。
"Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)
at java.util.HashMap$EntryIterator.next(Unknown Source)"
解決方法は?
試してみてください。
Iterator<Map.Entry<String,String>> iter = testMap.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String,String> entry = iter.next();
if("Sample".equalsIgnoreCase(entry.getValue())){
iter.remove();
}
}
Java 1.8以降では、上記を1行で行うことができます。
testMap.entrySet().removeIf(entry -> "Sample".equalsIgnoreCase(entry.getValue()));
関連
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] 辞書をキーでソートするにはどうしたらいいですか?
-
[解決済み] Goでマップにキーが含まれているかどうかを確認するには?
-
[解決済み] ハッシュマップのキーを指定して、値を更新するには?
-
[解決済み] 辞書を繰り返しながら、辞書の項目を削除するには?
-
[解決済み】forループを使った辞書の反復処理
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
ファインバグタイプ
-
Javaクラスローダーにソースコードから潜り込む
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
linux run jarfile Invalid or corrupt jarfile error.
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
org.glassfish.jersey.servlet.ServletContainer
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
maven プラグイン エラー プラグインの実行は、ライフサイクル構成ソリューションの対象外です。
-
[解決済み】マップの反復処理とマップからの削除【重複あり