1. ホーム
  2. java

[解決済み] 反復処理中にコレクションに要素を追加する

2023-06-11 22:41:01

質問

コレクションを反復処理しながら、コレクションに要素を追加することは可能ですか?

具体的には、コレクションを反復処理し、ある要素がある条件を満たした場合、他の要素をコレクションに追加し、これらの追加された要素も反復処理されるようにしたいのです。 (私は、この が終了しないループにつながることを理解していますが、私のケースではそうならないことを確信しています)。

Java チュートリアル は、これが不可能であることを示唆しています: "以下のことに注意してください。 Iterator.remove だけ 反復中にコレクションを修正する安全な方法です。反復の進行中に他の方法で基礎となるコレクションが修正された場合の動作は未定です。

イテレータを使用してやりたいことができない場合、どうすればよいのでしょうか。

どのように解決するのですか?

反復処理したい要素をQueueに格納し、要素を追加するときはQueueの末尾にenqueueし、Queueが空になるまで要素を削除し続けるのはどうでしょう。これは、通常、幅優先探索が機能する方法です。