黑马程序员技术交流社区

标题: 一个面试题... [打印本页]

作者: 0416_张威    时间: 2015-5-10 23:16
标题: 一个面试题...
面试题                ConcurrentModificationException:并发修改异常
                                          这是个什么异常,怎么产生的,怎么解决的?
  有关案例看  package Homework;  public class Homework
  怎么产生:
                  当我们通过迭代器迭代元素的过程中,又通过集合去添加了元素。这种情况是不允许的。
                  因为迭代器是依赖于集合存在的,如果集合发生改变,迭代器也应该相应的发生改变。
                  而我们目前看到的却是,迭代器没变,集合变了。所以,报出了一个并发修改异常。
  注意问题:通过迭代器遍历集合的时候,是不能通过集合去操作(添加,删除)。
  解决办法:
                                  A:全部通过迭代器操作:元素是添加到刚遍历的那个元素后面。
                                          通过迭代器迭代的时候,可以通过迭代器对集合进行操作。
                                  B:全部通过集合操作:元素是添加到最后的。
                                        通过集合普通for遍历的时候,可以通过集合去操作。
作者: 想要那片海    时间: 2015-5-11 08:57
感谢分享,预祝楼主顺利入学哈
作者: jackwang    时间: 2015-5-11 09:12
“B:全部通过集合操作:元素是添加到最后的。”这里应该看是哪种集合吧,如果是HashSet/TreeSet这种无序集合,就不一定是添加到集合最后了吧
作者: jackwang    时间: 2015-5-11 09:13
“B:全部通过集合操作:元素是添加到最后的。”这里应该看是哪种集合吧,如果是HashSet/TreeSet这种无序集合,就不一定是添加到集合最后了吧

另外:请问楼主什么时候面的试,我9号提交了,现在还没有收到面试安排。。。。。。
作者: 快乐Anne    时间: 2015-5-11 09:21
学习了,谢楼主
作者: 嘉Ming    时间: 2015-5-11 10:16
楼主说的是入学的面试吗?
作者: Always,    时间: 2015-5-11 10:22
             谢谢楼主分享。
作者: wkz_crystal    时间: 2015-5-11 10:39
恩,很不错!
作者: iamnoten    时间: 2015-5-11 11:18
谢谢分享
作者: 杨春雨    时间: 2015-5-11 17:14
学习了。。。谢谢中马
作者: CoeusLYJ    时间: 2015-5-11 17:17
谢谢楼主分享!!!
作者: YQliang    时间: 2015-5-11 17:32
学习了,谢楼主
作者: pisces    时间: 2015-5-11 20:29
谢谢分享

作者: 牛仔很忙fire    时间: 2015-5-11 20:58
感谢楼主分享
作者: bboyXiaoNuo    时间: 2015-5-11 21:00
厉害准备开始学异常,收藏




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