eclipse でコレクションをデバッグしているときに、modCount と呼ばれるものがあることを調べます。たとえば、リストをデバッグすると、この modCount が何を表しているかをデバッグ中に調べているときに表示されます..!!アドバイスしてください
2 に答える
javadoc を参照してください
このリストが構造的に変更された回数。構造的な変更とは、リストのサイズを変更したり、進行中の反復が誤った結果をもたらすような方法でリストを混乱させたりするものです。
このフィールドは、 iterator および listIterator メソッドによって返される iterator および list iterator 実装によって使用されます。このフィールドの値が予期せず変更された場合、反復子 (またはリスト反復子) は、次、削除、前、設定、または追加操作に応答して ConcurrentModificationException をスローします。これにより、反復中の同時変更に直面した非決定論的動作ではなく、フェイルファスト動作が提供されます。
サブクラスによるこのフィールドの使用はオプションです。サブクラスがフェイルファスト イテレータ (およびリスト イテレータ) を提供したい場合、その add(int, E) および remove(int) メソッド (およびオーバーライドする他のメソッドでこのフィールドをインクリメントするだけで、構造的なリストへの変更)。add(int, E) または remove(int) の 1 回の呼び出しで、このフィールドに追加できるのは 1 つだけです。追加しないと、反復子 (およびリスト反復子) が偽の ConcurrentModificationExceptions をスローします。実装がフェイルファスト反復子を提供したくない場合、このフィールドは無視されることがあります。
これは、コレクションを反復処理するときにコレクションへの変更を検出するために使用されるカウンターです。反復子は高速で失敗し、反復中にコレクションが変更された場合は例外をスローします。modCount
変更を追跡するために使用されます。
参考までに、標準クラスのソースはJDKの一部であり、標準クラスがどのように機能するかを理解するためにそれらを読むことができます。