0
繰り返し処理中にArrayListで削除操作を実行することができますなぜ反復処理中に同じ操作CopyOnWriteArrayListを実行できないのですか?反復処理中にCopyOnWriteArrayListに要素を削除できないのはなぜですか?
なぜこのプロセスでUnsupportedOperationExceptionが発生しますか?
繰り返し処理中にArrayListで削除操作を実行することができますなぜ反復処理中に同じ操作CopyOnWriteArrayListを実行できないのですか?反復処理中にCopyOnWriteArrayListに要素を削除できないのはなぜですか?
なぜこのプロセスでUnsupportedOperationExceptionが発生しますか?
CopyOnWriteArrayList
のすべてのミューテータは(ETC削除、追加...)ただ、単に干渉の可能性を排除するために、アレイのスナップショットとIterator
を作成するドキュメントを新しい配列とiterator()
を作成している:
スナップショットスタイルのイテレーターメソッドは、イテレーターが作成された時点の配列 の状態への参照を使用します。この配列は決してイテレータの存続期間中に変更されないため、 は不可能であり、反復子は不可能であり、イテレータは ConcurrentModificationExceptionをスローしないことが保証されています。
問題が発生した正確なコードを表示し、例外スタックトレース –
を投稿してください:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6 -b14/java/util/concurrent/CopyOnWriteArrayList.java#1036 –
とその*理由はおそらく次のようなものです:https://stackoverflow.com/a/28112444/180100 –