私は再帰的な方法を反復的にしようとしています。
繰り返し処理したいオブジェクトのリストがあり、それらのサブオブジェクトをチェックします。
再帰的:
doFunction(Object)
while(iterator.hasNext())
{
//doStuff
doFunction(Object.subObjects);
}
こんな感じに変えたい
doFunction(Object)
iIterator = hashSet.iterator();
while(Iterator.hasNext()
{
//doStuff
hashSet.addAll(Object.subObjects);
}
擬似コードが貧弱で申し訳ありませんが、基本的には、チェックするリストの最後に新しいオブジェクトを追加しながら、サブオブジェクトを反復処理したいと考えています。
リストを使用してこれを行うことができ、次のようなことができます
while(list.size() > 0)
{
//doStuff
list.addAll(Object.subObjects);
}
しかし、重複するサブオブジェクトを追加したくありません。もちろん、追加する前に list.contains(each subObject) かどうかを確認することもできます。
しかし、私は Set を使用してそのクリーナーを実現したいと考えています。
したがって、基本的には、繰り返し処理中にセットに追加する方法がありますか、それとも手動で .contains() をチェックするのではなく、リストをセットのように動作させる簡単な方法はありますか?
コメントをお待ちしております。
ありがとう