黑马程序员技术交流社区

标题: 【广州校区】集合中的并发修改异常 [打印本页]

作者: Maymaymay    时间: 2018-1-11 13:43
标题: 【广州校区】集合中的并发修改异常
本帖最后由 Maymaymay 于 2018-1-11 13:50 编辑

    学习集合的时候,会接触到ConcurrentModificationException异常(并发修改异常),很多初学者知道这个异常是由于在迭代器遍历的同时在增加或删除元素导致的,但是在面试过程中我也发现,部分童鞋会误以为:只要是迭代遍历过程中,使用集合或者是Iterator的方法进行增加或删除元素,就一定会出现这个异常。
    其实不然,下面我们还是直接用代码验证一下:

解决方案
1.使用ListIterator迭代器的删除或者增加方法

需要注意的是:
      ListIterator迭代器的删除方法返回的是最后一个元素,详细可以自己查看一下API,并用代码验证一下

  可以 顺便看一下  ListIterator迭代器有哪些方法:

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

但是,Iterator迭代器就只有3个方法了

        所以,如果我们仅仅是要实现在迭代遍历过程中删除元素,两个迭代器都有remove方法可以操作,但是如果是增加等其他操作,就要看迭代器是否有相应的方法了。
        综合以上分析,总结一下:操作集合过程中出现的并发修改异常是因为:迭代遍历过程中使用集合的方法对集合元素进行删除或者增加。








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2