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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© william_J 中级黑马   /  2014-11-24 22:04  /  1563 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

到底怎么解决在iterator遍历集合的时候,往里添加元素的同时,发生的并发异常?

11 个回复

倒序浏览
可以改用ListIerrator  用ListIerrator的add方法添加元素,也可以纯用集合的方法来进行遍历和添加

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
双冠,用其一就好了
回复 使用道具 举报
要么全部用集合操作,要么全部用ListIterator来操作!
回复 使用道具 举报
果然大神多呀
回复 使用道具 举报
cbb 中级黑马 2014-11-25 00:43:42
地板
使用ListInterator
回复 使用道具 举报
学习!!!!!!!!!
回复 使用道具 举报
Iterator有个子类ListIterator
回复 使用道具 举报
进来学习一下!
回复 使用道具 举报
用加强版的for循环可以的
回复 使用道具 举报
可以在对象里重写equal方法
回复 使用道具 举报
当我们通过迭代器迭代元素的过程中,又通过集合去添加了元素。这种情况是不允许的。
*                 因为迭代器是依赖于集合存在的,如果集合发生改变,迭代器也应该相应的发生改变。
*                 而我们目前看到的确实,迭代器没变,集合变了。所以,报出了一个并发修改异常。
*
* 注意问题:通过迭代器遍历集合的时候,是不能通过集合去操作(添加,删除)。
* 那么,我们可不可以这样理解呢?
* A:全部通过迭代器操作:元素是添加到刚遍历的那个元素后面。
*                 通过迭代器迭代的时候,可以通过迭代器对集合进行操作。
* B:全部通过集合操作:元素是添加到最后的。
*                 通过集合普通for遍历的时候,可以通过集合去操作。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马