問題タブ [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 - mylocationオーバーレイとタイマーを使用したConcurrentModificationException
この問題は私の頭を悩ませてきました、そしてあなたが助けてくれることを願っています!私は以前にここで多くの問題に対する答えを見つけました、そしてあなたの人々があなたの魔法を再び働かせることを願っています:)
さて、私のアプリの一部はGoogle Maps APIを使用して、地図上にオーバーレイを表示し(カスタムオーバーレイクラスを使用)、mylocationoverlayを使用してユーザーの場所を表示します。mylocationoverlayをアクティブにしないと、すべてが正常に機能しますが、アクティブにすると、アプリの強制は。で閉じますConcurrentModificationException
。
オーバーレイの位置は常に変化するため、タイマーを使用してオーバーレイを更新します。このために、非同期タスクを使用してオーバーレイを削除し、更新された位置で新しいオーバーレイを追加しました。mylocationoverlayがバックグラウンドで同様のことを行うと仮定するのは正しいですか?その仮定が有効である場合、mylocationoverlayと非同期タスクが同じ配列を同時に反復/変更しようとしているという結論に達しました。唯一これは、これが起こらないようにする方法がわかりません!
コードが非常に大きいため、ここに実際に投稿することはできませんが、commonsguyによって作成されたgithubから取得したサンプルコードを使用し、同じ問題が発生するように変更しました。
これは本当に私を苛立たせているので、どんな助けでも大歓迎です。事前に感謝し、長い説明をお詫びします!
編集:commonsguyコードのリンクは-https: //github.com/commonsguy/cw-advandroid/blob/master/Maps/NooYawkAsync/
編集2:Javaコードの後にエラートレースを追加しました。
スタックトレース:
java.util.ConcurrentModificationException at java.util.ArrayList $ ArrayListIterator.next(ArrayList.java:573)at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:44)atcom.google.android.maps。 MapView.onDraw(MapView.java:494)at android.view.View.draw(View.java:6740)at android.view.ViewGroup.drawChild(ViewGroup.java:1640)at android.view.ViewGroup.dispatchDraw(ViewGroup .java:1367)at android.view.ViewGroup.drawChild(ViewGroup.java:1638)at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)at android.view.ViewGroup.drawChild(ViewGroup.java:1638) android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)at android.view.View.draw(View.java:6743)at android.widget.FrameLayout.draw(FrameLayout.java:352)atandroid.view。 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)のViewGroup.drawChild(ViewGroup.java:1640)android。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)at android.view.ViewRoot.performTraversals(ViewRoot.java:1163)at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)atandroid.os。 Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:123)at android.app.ActivityThread.main(ActivityThread.java:4627)at java.lang.reflect.Method.invokeNative (ネイティブメソッド)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)at dalvik.system.NativeStart.main(ネイティブメソッド)FrameLayout.draw(FrameLayout.java:352)at com.android.internal.policy.impl.PhoneWindow $ DecorView.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)at android.os.Handler.dispatchMessage(Handler.java:99)atandroid.os.Looper。 loop(Looper.java:123)at android.app.ActivityThread.main(ActivityThread.java:4627)at 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)at dalvik.system.NativeStart .main(ネイティブメソッド)FrameLayout.draw(FrameLayout.java:352)at com.android.internal.policy.impl.PhoneWindow $ DecorView.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)at android.os.Handler.dispatchMessage(Handler.java:99)atandroid.os.Looper。 loop(Looper.java:123)at android.app.ActivityThread.main(ActivityThread.java:4627)at 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)at 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)at android.os.Looper.loop(Looper.java:123)at android.app.ActivityThread.main(ActivityThread.java:4627)at 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) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)at 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)at android.os.Looper.loop(Looper.java:123)at android.app.ActivityThread.main(ActivityThread.java:4627)at 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) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)at dalvik.system.NativeStart.main(ネイティブメソッド)1727)android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:123)at android.app.ActivityThread.main(ActivityThread.java:4627)atjava。 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)at dalvik.system.NativeStart.main(ネイティブメソッド)1727)android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:123)at android.app.ActivityThread.main(ActivityThread.java:4627)atjava。 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)at dalvik.system.NativeStart.main(ネイティブメソッド)main(ZygoteInit.java:636)at dalvik.system.NativeStart.main(ネイティブメソッド)main(ZygoteInit.java:636)at dalvik.system.NativeStart.main(ネイティブメソッド)
java - ConcurrentModificationException(Java)
それが私が受け取るエラーです。
私の方法は次のようになります
つまり、私が理解しているのは、イテレータが終了する前にサイズを変更していることを意味し、これがエラーになります。これは、reactStateChangeの1つが、hashMapからオブジェクトを削除するためのものであるためです。これを安全に行うにはどうすればよいですか。何かを削除したときにIteratorに事前に通知して、このエラーを回避できるようにします。前もって感謝します。詳細が必要な場合は、ご要望にお応えさせていただきます。
java - 名前フィールドが特定のパラメーターと一致するリストからPersonのすべてのインスタンスを削除する
演習では、特定の名前パラメーターに一致するすべてのユーザーをリストコレクションから削除する必要があります。ソリューションでは、for-eachループを使用する必要があります。
以下に示すソリューションは、コンパイル時エラーをスローしませんが、ソリューションの正しさを検証するために実行される単体テストの1つに合格しません。
これが私がこれまでに試したことです:
vector - ベクトルの ConcurrentModificationError
ここで達成しようとしているのは、衝突が検出されるたびにベクターから「花」を削除することです。ただし、ConcurrentModificationError が発生し続けます。ベクターから花を削除しようとすると、めちゃくちゃになります。私は多くの方法でそれをやってみました。花を削除する必要があることが検出されたある時点で、その位置をベクターに保存し、リスト内の次の位置が見られたときに削除しようとしました。これはあなたが見る必要がある唯一の方法だと思います。これを修正するために私ができることを誰かが見ることができますか??
java - リストを繰り返し処理しながらリスト要素を削除するためのJavaで受け入れられているベストプラクティスはありますか?
これを行う間、回避するための最善の方法について、矛盾するアドバイスを見つけConcurrentModificationException
ています。
Iterator
私はa の代わりにan を使用し、そのメソッドList
を呼び出すことに傾いています。remove
それはここで最も理にかなっていますか?
java - ツリーからノードを適切に削除する
ツリーデータ構造を剪定する次の関数があります。
これを剪定する最善の方法を知りたいです。私は現在 ConcurrentModificationExceptions を取得しています。コレクションをコピーしてオリジナルを削除するか、イテレータから削除できることを読みました。この方法が機能するために何をする必要があるかを誰かが理解するのを手伝ってくれますか?