黑马程序员技术交流社区
标题:
一个面试题...
[打印本页]
作者:
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