如何修复ConcurrentModificationException,从arrayList中删除项目?

时间:2019-05-07 11:08:58

标签: java arraylist

我想在我的arrayList中进行迭代时删除它,并且set.seed(42) sample(x,1,replace=TRUE) 的类型为Member类。我已经阅读了多个有关如何解决此问题的示例,但是都无济于事,ArrayList仍然被抛出。

ConcurrentModificationException

2 个答案:

答案 0 :(得分:0)

我最终的解决方案是使用CopyOnWriteArrayList,而不是使用remove()的ArrayList;方法。

答案 1 :(得分:-1)

EDIT 当然,我的第一个解决方案是错误的 facepalm 如上所述,“。removeIf”最有可能是最简单的解决方案。

只需使用“正常”的for循环(我认为应该可以,请看一下 this,顺便说一句。 “增强的循环”将不起作用。

List<Member> list1 = new ArrayList<>();
List<Member> list2 = new ArrayList<>(list1);
for (int i = 0; i < list1.size(); i++) {
  Member member = list1.get(i);
  ...
  list2.remove(member);
}
list1 = list2;