集合框架,并发修改异常产生的原因及解决方案。

package List;

import java.util.ArrayList;
import java.util.Iterator;

import com.sun.xml.internal.bind.v2.runtime.reflect.ListIterator;

public class Demo03 {
/*
* 我有一个集合,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素
*/
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("world");
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");// 遍历的同时在增加元素,并发修改异常:java.util.ConcurrentModificationException
}
}*/
/*遍历的同时增加元素
* 解决方案:可以用list中特有的迭代器ListIterator中的add方法解决。
*/
@SuppressWarnings({ "rawtypes", "unused" })
java.util.ListIterator lit = list.listIterator();//获取迭代器(list集合特有的迭代器)
while (lit.hasNext()) {
String str = (String) lit.next();
if ("world".equals(str)) {
lit.add("javaee");
}
}
System.out.println(list);

}
}

posted @ 2021-01-02 09:53  一块  阅读(167)  评论(0编辑  收藏  举报