我有一个对象(类型为“Flows”),其中包含类型为“Flows”的列表。
class Flows{
String id;
String sequence;
List<Flows> listOfFlows;
}
我想将所有嵌套列表的元素(可以有任意数量的嵌套列表)合并到一个列表中。我们如何通过Java中的递归实现呢?
我有一个对象(类型为“Flows”),其中包含类型为“Flows”的列表。
class Flows{
String id;
String sequence;
List<Flows> listOfFlows;
}
那么,类似这样的例子怎么办:
void flattenFlows(Flows flows, List<Flows> flowsList)
{
flowsList.add(flows);
for (Flows f: flows.listOfFlows) {
flattenFlows(f, flowsList);
}
}
flowsList
是您想要将所有流添加到其中的列表。void flattenFlows(Flows flows, List<Flows> flowsList)
{
flowsList.add(flows);
if(flow.listOfFlows!=null) {
for (Flows f: flows.listOfFlows) {
flattenFlows(f, flowsList);
}
}
}
flowsList.add(f);
替换为 flowsList.add(flows);
。 - N. berouainnull
ListOfFlows
。当我尝试使用你的方法时,它抛出了NPE异常。如果列表被分配但为空,则没有问题。 - WJS
listOfFlows
的样子。如果它没有被使用,我希望它是null
,但这对于任何递归解决方案来说都是至关重要的,以避免抛出NPE异常。 - WJS