标签:util demo 异常 不能 next for iter get add
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/**
*
* @author Ginfer
* @virsion
* HP
* collection
* HP
* 当迭代器在遍历元素的时候,集合时不能修改元素的,会报ConcurrentModificationException(并发修改异常)
* 迭代器依赖于集合存在,在判断成功后,集合中添加元素是,迭代器不知道,所以会报错
* 这个错叫并发修改异常,如何解决呢?
* 1.迭代器迭代元素,迭代器修改元素
* 但是Iterator没有添加功能
* 2.集合遍历元素,集合修改元素
*
*
*/
public class Demo3 {
public static void main(String[] args) {
List list=new ArrayList();
list.add("asd");
list.add("asdf");
list.add("asdfg");
/*Iterator it=list.iterator();
while(it.hasNext()){
String s=(String) it.next();
if("asd".equals(s)){
list.add("nihao");
}
}*/
//方法1.迭代器迭代元素,迭代器修改元素,元素在查找的元素后面添加
ListIterator lit=list.listIterator();
while(lit.hasNext()){
String s=(String)lit.next();
if("asd".equals(s)){
lit.add("zxc");
}
}
System.out.println("list:"+list);
//方法2.集合遍历元素,集合修改元素,元素在集合的最后添加
for (int i = 0; i < list.size(); i++) {
if("asd".equals(list.get(i))){
list.add("bnm");
}
}
System.out.println("list:"+list);
}
}
标签:util demo 异常 不能 next for iter get add
原文地址:http://www.cnblogs.com/Flyrun/p/7612511.html