我正在寻找一种递归方法迭代。
我有一个要迭代的对象列表,然后检查它们的子对象。
递归:
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()?
任何意见表示赞赏。
谢谢