コレクションを巡回するときに要素を削除しjavaを放出する.util.ConcurrentModificationExceptionの解決策
2721 ワード
コレクションを巡回して要素を削除するとjavaが放出される可能性があります.util.ConcurrentModificationException異常.
次のコードは例外を放出します.
どうやってこの問題を解決しますか?反復器を使用:
反復器を呼び出すremoveメソッドは、要素を安全に削除できます:it.remove();
集合のremoveメソッドを使用する場合:map.remove(s); javaに報告します.util.ConcurrentModificationException異常:
次のコードは例外を放出します.
1: for (String s : map.keySet()) {
2: if ("val".equals(s))
3: map.remove(s);
4: }
どうやってこの問題を解決しますか?反復器を使用:
1: Iterator it = map.keySet().iterator();
2: while (it.hasNext()) {
3: String obj = it.next();
4: if ("2".equals(obj)) {
5: it.remove();
6: }
7: }
反復器を呼び出すremoveメソッドは、要素を安全に削除できます:it.remove();
集合のremoveメソッドを使用する場合:map.remove(s); javaに報告します.util.ConcurrentModificationException異常:
1: Iterator it = map.keySet().iterator();
2: while (it.hasNext()) {
3: String obj = it.next();
4: if ("2".equals(obj)) {
5: // it.remove();
6: map.remove(obj);
7: }
8: }