为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复 ConcurrentModificationException

如何修复 ConcurrentModificationException

慕森王 2022-11-10 17:17:55
我想在遍历它时从我的arrayList 中删除一个项目,并且它ArrayList有一个类型类成员。我已经阅读了多个有关如何解决此问题的示例,但是没有一个有效,ConcurrentModificationException仍然被抛出。Iterator<Members> itr = members.iterator();while (itr.hasNext()) {  Members foundMember = itr.next();  if (foundMember.equals(member)){    itr.remove();  }}
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

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



查看完整回答
反对 回复 2022-11-10
?
狐的传说

TA贡献1804条经验 获得超3个赞

当然我的第一个解决方案是不正确的facepalm ,如上所述,“.removeIf”很可能是最简单的解决方案。


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


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;


查看完整回答
反对 回复 2022-11-10
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信