javaのListが遍歴している時は要素を削除できません。

1805 ワード

実際に開発したListが要素を削除できない場合、慎重にテストしてまとめました。不完全なところがあれば、オーケーの指摘を歓迎します。
public class ListIs Remove{public static void main(String[]args){List list=new ArayList();for(int i=0;i<10;i+){list.add(i+1+')////。最初のエルゴード方式/要素の個数<=2の場合、1を削除するとエラーが発生しません。2を削除するとエラーが発生します。要素の個数が2より大きい場合、直接エラーが発生します。下の原理はここでは議論しません。信頼スペクトルの削除方式のみを推奨します。***Exception i n thread「main」java.util. ConcurrentModifitionException ap java.util. ArayList I t r.c h e c c c c c c c o o o o o o o o o o o i i i i i i i i i i i i n(A r a a a a a a a a a l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l.j.j.j.j.j.j.j.j.j.j.j.j.j java.util.ArayList I t r.heckForComodification(ArayList.java:909)atjava.util.ArayListItr.next(ArayList.java:859)at come.wangyi.list.ListIsRemove.main(ListIsRemove.java:22)/for(String lists.list 1."System.out.println(list)*/
    //       
    //                   ,       ,           list    2
  /*  for (int j = 0; j < list.size(); j++) {
        if("1".equals(list.get(j)) || "2".equals(list.get(j)) ){
            list.remove(j);
           //    :  index,        ,         
          //  j=j-1;     
        }
    }
    System.out.println(list);*/
  
  //       ,    ,        
    /*for(int i=list.size()-1;i>=0;i--){
        if("1".equals(list.get(i)) || "2".equals(list.get(i)) ) {
            list.remove(i);
        }
    }
    System.out.println(list); */
    
    //           ,            ,            ,   。
    Iterator it =list.iterator();
    while(it.hasNext()){
        String temp = (String) it.next();
        if(temp.equals("1") || temp.equals("2")){
            it.remove();
        }
        
    }
    System.out.println(list);
}
)