通过向列表添加项来避免ConcurrentModificationException异常

时间:2014-01-28 14:36:05

标签: java list

当尝试在循环中添加/删除列表中的某些内容时,java可能会引发ConcurrentModificationException个异常。在谷歌搜索后,我遇到了克服问题的方法,例如应用接口迭代器,以及当你想要删除项目时,需要使用remove()函数通过迭代器本身将其从列表中删除。

但是,迭代器的方法中没有add()函数,因此添加没有异常的元素的唯一方法是使用索引/位置来循环for (int i = 0; i < list.size(); i++)。但是,对于大型列表,此循环效率极低,因为您需要通过遍历列表来获取所讨论项的索引位置。所以我的问题是除了我提到的用于将项目添加到列表中的方式之外,您是否知道其他任何方式?

谢谢

1 个答案:

答案 0 :(得分:3)

我的建议是听取ConcurrentModificationException的建议,只需改变你对问题的处理方法。在迭代时不应修改列表。