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)*/
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);
}
)