JAVAベース(List集合同時修正異常)
1655 ワード
1,C o n c u r r r e n tModificationExceptionが発生した理由:反復器遍歴、集合修正集合
2、ソリューション反復要素、反復修正要素(ListIteratorの固有機能add) 集合遍歴要素、集合修正要素 遍歴中に要素を追加するには、ListIteratorのaddメソッド を使用します.
2、ソリューション
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Demo3_List {
/**
** A:
* : , , "world" , , "javaee" ,
*/
public static void main(String[] args) {
List list = new ArrayList();
list.add("a"); //Object obj = new String();
list.add("b");
list.add("world");
list.add("c");
list.add("d");
list.add("e");
/*Iterator it = list.iterator(); //
while(it.hasNext()) { //
String str = (String)it.next(); //
if("world".equals(str)) {
list.add("javaee"); // , ConcurrentModificationException
}
}*/
ListIterator lit = list.listIterator(); // (List )
while(lit.hasNext()) {
String str = (String)lit.next(); //
if("world".equals(str)) {
//list.add("javaee"); // , ConcurrentModificationException
lit.add("javaee");
}
}
System.out.println(list);
}
}