A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0416_张威 中级黑马   /  2015-5-10 23:16  /  1127 人查看  /  14 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

面试题                ConcurrentModificationException:并发修改异常
                                          这是个什么异常,怎么产生的,怎么解决的?
  有关案例看  package Homework;  public class Homework
  怎么产生:
                  当我们通过迭代器迭代元素的过程中,又通过集合去添加了元素。这种情况是不允许的。
                  因为迭代器是依赖于集合存在的,如果集合发生改变,迭代器也应该相应的发生改变。
                  而我们目前看到的却是,迭代器没变,集合变了。所以,报出了一个并发修改异常。
  注意问题:通过迭代器遍历集合的时候,是不能通过集合去操作(添加,删除)。
  解决办法:
                                  A:全部通过迭代器操作:元素是添加到刚遍历的那个元素后面。
                                          通过迭代器迭代的时候,可以通过迭代器对集合进行操作。
                                  B:全部通过集合操作:元素是添加到最后的。
                                        通过集合普通for遍历的时候,可以通过集合去操作。

14 个回复

正序浏览
厉害准备开始学异常,收藏
回复 使用道具 举报
感谢楼主分享
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
学习了,谢楼主
回复 使用道具 举报
谢谢楼主分享!!!
回复 使用道具 举报
学习了。。。谢谢中马
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
恩,很不错!
回复 使用道具 举报
             谢谢楼主分享。
回复 使用道具 举报
楼主说的是入学的面试吗?
回复 使用道具 举报
学习了,谢楼主
回复 使用道具 举报
“B:全部通过集合操作:元素是添加到最后的。”这里应该看是哪种集合吧,如果是HashSet/TreeSet这种无序集合,就不一定是添加到集合最后了吧

另外:请问楼主什么时候面的试,我9号提交了,现在还没有收到面试安排。。。。。。
回复 使用道具 举报
“B:全部通过集合操作:元素是添加到最后的。”这里应该看是哪种集合吧,如果是HashSet/TreeSet这种无序集合,就不一定是添加到集合最后了吧
回复 使用道具 举报
感谢分享,预祝楼主顺利入学哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马