集合遍歷時,修改元素


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


}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM