集合遍历时,修改元素

Posted 北极村

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合遍历时,修改元素相关的知识,希望对你有一定的参考价值。

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


}

}

以上是关于集合遍历时,修改元素的主要内容,如果未能解决你的问题,请参考以下文章

分析ArrayList在遍历时修改报错的原因

List遍历时删除遇到的问题

for循环和迭代器Iterator

关于迭代器的for-each遍历集合现象。。。。。

[Go]新手入门:map的介绍与使用

[Go]新手入门:map的介绍与使用