コレクション・フレームワーク

トップ > チップス > コレクション・フレームワーク
2012-02-13, collections

/tips/java/collections **Iterator内の要素を削除する Iteratorによるセットやマップ要素の列挙中に、条件に一致した要素を削除したい場合、元々のセットから削除をすると「ConcurrentModificationException」が発生してしまいます。Iteratorそのもののremoveメソッドを使用して削除します。 :Set set = new HashSet(); :set.add(1); :set.add(2); :set.add(3); :set.add(4); :set.add(5); :System.out.println("size="+set.size()); : :Iterator iter = set.iterator(); :while (iter.hasNext()) { : Integer i = iter.next(); : if(i % 2 == 0){ : // 偶数だったら削除 : // 以下のように書くと、java.util.ConcurrentModificationExceptionが発生 : // set.remove(i); : iter.remove(); : } :} :System.out.println("size="+set.size());

この記事は役に立ちましたか?