需求:我有一个集合,请问,我想判断里面有没有”world”这个元素,如果有,我就添加一个”javaee”元素,请写代码实现。
List list = new ArrayList();list.add("a");list.add("b");list.add("world");list.add("d");list.add("e");Iterator it = list.iterator(); //获取迭代器while(it.hasNext()) { //判断集合中是否有元素String str = (String)it.next(); //向下转型if(str.equals("world")) {list.add("javaee"); //这里会抛出ConcurrentModificationException并发修改异常}}
ConcurrentModificationException出现
- 迭代器遍历,集合修改集合
解决方案
- a:迭代器迭代元素,迭代器修改元素(ListIterator的特有功能add)
- b:集合遍历元素,集合修改元素
ListIterator lit = list.listIterator(); //如果想在遍历的过程中添加元素,可以用ListIterator中的add方法while(lit.hasNext()) {String str = (String)lit.next();if(str.equals("world")) {lit.add("javaee");//list.add("javaee");}}
