迭代器并发修改错误(Java)

时间:2016-02-03 05:49:07

标签: java while-loop iterator set maps

我的代码(简要介绍如下);当最后一次调用events{ "name":"Party", "StartTime":"2/19/2016 7:30:00 AM" } 时,它会抛出ConcurrentModificationException - PS-我试过调试它,我似乎无法确定如何使其工作。如果我切换删除和添加方法,它可以工作,但是如果somethingElse =一些不太有用的东西,它会删除唯一的值。

PS-我知道解决方案here;但我需要它来添加AFTER删除导致问题的值

hasNext()

Edit- somethingElse可以是一个或全新的对象(有一个循环可以确定这个) 这是我的第一篇文章 - 如果它太抽象或代码不清楚,请告诉我,我会发布我的完整代码。

谢谢! :)

2 个答案:

答案 0 :(得分:0)

您的问题可以理解 - 任何时间点body: null bodyUsed: false headers: Headers ok: false status: 0 statusText: "" type: "opaque" url:"" 都可以SomethingElse

如果是这样的话,您将获得something,因为您正在迭代列表并同时更新它。

因此,concurrentModificationException无法确定基础iterator中发生了什么,它会在出现严重错误之前坚持data structure的政策。

(核心值后跟fail-fast读取和写入应妥善处理

答案 1 :(得分:0)

您的.remove正在抛出该错误,因为您在迭代时修改了列表。您可以使用ConcurrentHashMap和CopyOnWriteArrayList类来修复此错误。

请参阅链接here以获取有关错误的明确说明。