中級 › ConcurrentModificationException の原因と直し方 › パターン5
ConcurrentModificationException の原因と直し方
ループ中のリスト変更で発生します。
1 import java.util.HashMap; 2 import java.util.Map; 3 4 public class Main { 5 public static void main(String[] args) { 6 Map<String, Integer> m = new HashMap<>(); 7 m.put("a", 1); 8 m.put("b", 2); 9 for (String k : m.keySet()) { 10 ________________ ^ 11 } 12 System.out.println(m); 13 } 14 }
Exception in thread "main" java.util.ConcurrentModificationExceptionexited with code 1
空欄を埋めてビルドを通す
keySet()を回している最中にMapへput(キーの追加)をすると例外になります。ArrayListと同じ制約がMapにもあります。
次の問題