问题标签 [concurrentmodification]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 动画中的 java.util.ConcurrentModificationException
我想念 Android 中同步代码的概念。
设想
屏幕上始终绘制 3 个项目。每个图像都存储在一个 ArrayList (lstGraphics) 中。为此,我使用了 SurfaceView。一旦用户点击图像,图像的市场就会被移除,并且会添加一个新的市场。
代码示例:
动画隐藏线程
因此,正如您首先看到的那样,我 updatePhysics()。这意味着我计算每个图像将移动到的方向。在这里,我还将从列表中删除点击的图像。之后,我检查是否需要在 manageAnimations() 的列表中添加一个新项目,然后最后一步绘制整个事物。
我得到的错误是:
任何帮助是极大的赞赏。谢谢你。
java - 编辑 XML 时并发修改错误
在 JSP 文件中使用 Java 编辑 XML 文件时出现并发修改错误。这是如何引起的,我该如何解决?
这是堆栈跟踪:
java - java.util.AbstractList$Itr.checkForComodification 三重事件
我运行一个服务器,它有一个处理计时系统的事件处理程序当我连续运行 3 个时,它给出了这个异常
这是问题的来源:
java - 卡住“java.util.ConcurrentModificationException”
这是我的代码:
错误java.util.ConcurrentModificationException
会在标记线 ( Event e = it.next();
) 处引发。您是否在我的代码中看到一个错误,该错误使引发该异常的原因显而易见?
android - ConcurrentModificationException 使用 mylocation 覆盖和计时器
这个问题一直困扰着我,希望您能提供帮助!我以前在这里找到了许多问题的答案,希望你们能再次发挥你的魔力:)
好的,所以我的应用程序的一部分使用 Google Maps API 在地图上显示覆盖(使用自定义覆盖类)以及使用 mylocationoverlay 的用户位置。现在,如果我不激活 mylocationoverlay 一切正常,但如果它被激活,则应用程序强制以ConcurrentModificationException
.
现在计时器用于刷新覆盖,因为它的位置总是在变化。为此,我使用了一个异步任务来删除覆盖并添加一个具有更新位置的新覆盖。我是否正确假设 mylocationoverlay 在后台做类似的事情?如果该假设有效,那么我得出的结论是 mylocationoverlay 和我的异步任务正在尝试同时迭代/修改同一个数组。唯一的就是,我不知道如何阻止这种情况发生!
我真的不能在这里发布我的代码,因为它非常大,但我使用了一个从 github 创建的由 commonsguy 创建的示例代码,并对其进行了修改以产生相同的问题。
任何帮助将不胜感激,因为这真的让我很沮丧。在此先感谢,并为冗长的描述感到抱歉!
编辑:commonsguy 代码的链接是 - https://github.com/commonsguy/cw-advandroid/blob/master/Maps/NooYawkAsync/
编辑 2:在 java 代码之后添加了错误跟踪。
堆栈跟踪:
com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:44) 的 com.google.android.maps 的 java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573) 的 java.util.ConcurrentModificationException。 MapView.onDraw(MapView.java:494) 在 android.view.View.draw(View.java:6740) 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640) 在 android.view.ViewGroup.dispatchDraw(ViewGroup .java:1367) 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638) 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 在 android.view.View.draw(View.java:6743) 在 android.widget.FrameLayout.draw(FrameLayout.java:352) 在 android.view。 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 上的 ViewGroup.drawChild(ViewGroup.java:1640)。view.View.draw(View.java:6743) at android.widget.FrameLayout.draw(FrameLayout.java:352) at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847)在 android.view.ViewRoot.draw(ViewRoot.java:1407) 在 android.view.ViewRoot.performTraversals(ViewRoot.java:1163) 在 android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 在 android.os。 Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative (Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) at com.android.internal.os .ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)FrameLayout.draw(FrameLayout.java:352) 在 com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847) 在 android.view.ViewRoot.draw(ViewRoot.java:1407) 在 android .view.ViewRoot.performTraversals(ViewRoot.java:1163) 在 android.os.Looper 的 android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 在 android.os.Handler.dispatchMessage(Handler.java:99)。 loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method. java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart .main(本机方法)FrameLayout.draw(FrameLayout.java:352) 在 com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847) 在 android.view.ViewRoot.draw(ViewRoot.java:1407) 在 android .view.ViewRoot.performTraversals(ViewRoot.java:1163) 在 android.os.Looper 的 android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 在 android.os.Handler.dispatchMessage(Handler.java:99)。 loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method. java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart .main(本机方法)draw(PhoneWindow.java:1847) at android.view.ViewRoot.draw(ViewRoot.java:1407) at android.view.ViewRoot.performTraversals(ViewRoot.java:1163) at android.view.ViewRoot.handleMessage(ViewRoot.java :1727) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java .lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)在 dalvik.system.NativeStart.main(本机方法)的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)draw(PhoneWindow.java:1847) at android.view.ViewRoot.draw(ViewRoot.java:1407) at android.view.ViewRoot.performTraversals(ViewRoot.java:1163) at android.view.ViewRoot.handleMessage(ViewRoot.java :1727) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java .lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)在 dalvik.system.NativeStart.main(本机方法)的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)1727) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java. lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)1727) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java. lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)
java - ConcurrentModificationException (Java)
That is the error I receive.
My method looks like
So what I understand is this means I'm changing the size of the iterator before it is finished and this is the error you get. This is true as one of the reactStateChange is for an object to be removed out of the hashMap. How do I do this safely so that when I remove something it lets the Iterator know ahead of time so I can avoid this error. Thanks in advance. If more details are needed I'd be glad to meet your requests.
java - 从列表中删除名称字段与给定参数匹配的所有 Person 实例
一个练习要求从 List 集合中删除与给定名称参数匹配的所有人员。解决方案必须使用 for-each 循环。
下面介绍的解决方案不会向我抛出任何编译时错误,但它未能通过运行以验证解决方案正确性的单元测试之一。
这是我到目前为止所尝试的:
vector - 矢量上的 ConcurrentModificationError
我在这里要完成的是在检测到碰撞时从向量中删除“花朵”。但是,我不断收到 ConcurrentModificationError。当我尝试从 Vector 中移除花朵时,它搞砸了。我已经尝试过很多方法。有一次,当检测到应该移除花朵时,我将其位置保存在 Vector 中,然后在查看列表中的下一个位置时尝试将其移除。我认为这是您需要查看的唯一方法。谁能看到我能做些什么来解决这个问题?
java - Java 中是否存在在迭代列表时删除列表元素的公认最佳实践?
对于避免这样做的最佳方法,我发现了相互矛盾的建议ConcurrentModificationException
:
我倾向于使用 aIterator
代替 aList
并调用它的remove
方法。
这在这里最有意义吗?
java - 正确地从树中删除节点
我有以下修剪树数据结构的函数:
我想知道最好的修剪方法是什么。我目前正在收到 ConcurrentModificationExceptions,并且我已经读到您可以复制集合,然后删除原始集合 - 或从迭代器中删除。有人可以帮助我了解我需要做什么才能使这种方法起作用吗?