黑马程序员——集合中并发修改异常ConcurrentModificationException

来源:互联网 发布:天子星软件 编辑:程序博客网 时间:2024/06/08 14:58

------- android培训、java培训、期待与您交流! ----------


ConcurrentModificationException异常并发修改异常是由于在迭代器遍历的同时在增加或删除元素


class Demo{public static void main(String[] args) {List list = new ArrayList();list.add("a");list.add("b");list.add("world");list.add("c");Iterator it = list.iterator();while(it.hasNext()) {String str = (String)it.next();if("world".equals(str)) {//list.add("javaee");//这时对集合添加或删除元素时将会抛出并发修改异常//list.remove("world");}}}}

解决方案

1.使用ListIterator迭代器

ListIterator lit = list.listIterator();while(lit.hasNext()) {String str = (String)lit.next();if("world".equals(str)) {lit.add("javaee");//使用迭代器本身的添加功能}}

2.删除时出现的并发修改异常可以使用迭代器本身的remove方法进行删除

Iterator it = list.iterator();while(lit.hasNext()) {String str = (String)lit.next();if("world".equals(str)) {it.remove();//使用迭代器本身的删除功能}}






1 0