集合遍历时,修改元素

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);


}

}

转载于:https://www.cnblogs.com/Flyrun/p/7612511.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值