ホームページ >Java >&#&チュートリアル >JavaでのConcurrentModificationExceptionを例で
ConcurrentModificationException
以下は例外の例です
この例外は通常、次の場合に発生します
ConcurrentModificationException
例外の検出と反復は、
<code class="language-java">Exception in thread "main" java.util.ConcurrentModificationException at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:000) at java.base/java.util.ArrayList$Itr.next(ArrayList.java:000) at com.journaldev.ConcurrentModificationException.ConcurrentModificationExceptionExample.main(ConcurrentModificationExceptionExample.java:00)</code>という名前の内部フラグを使用して、速い故障したイテレーターがループ内のブロックをブロックします。
modCount
例外アルゴリズムこのアルゴリズムは、Java環境で例外を生成する方法を示しています。いくつかのソリューションを探索するために、いくつかのJavaコードを記述します。 ConcurrentModificationException
プロセスを開始します。 java.util.ConcurrentModificationException
次の構文は、java環境で例外を生成する方法を示しています。
ConcurrentModificationException
上記の構文は、java環境で
ConcurrentModificationException
<code class="language-java">// ... (代码片段省略,与原文类似,但使用更简洁的变量名和注释) ...</code>
ConcurrentModificationException
メソッド1:反復プロセス中に変更
この方法は、反復プロセス中にコレクションを直接変更します。ファーストフェイルのイテレーターが失敗すると、例外がスローされます。メソッドを使用し、ループ
<code class="language-java">for (Iterator<integer> iterator = integers.iterator(); iterator.hasNext();) { Integer integer = iterator.next(); if(integer == 2) { iterator.remove(); // 使用迭代器的remove()方法安全地移除元素 } }</integer></code>
next()
remove()
結論ConcurrentModificationException
例外は通常、コレクションが同時に変更されたときに発生します。この記事では、この例外を回避する方法について説明し、対応するJavaコードの例を提供します。 この例外は、CopyOnWriteArrayList
やConcurrentHashMap
などのスレッドセーフコレクションクラスと、Iteratorのremove()
メソッドを使用して効果的に回避できます。
以上がJavaでのConcurrentModificationExceptionを例での詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。