列表列表的递归函数

Recursive function for list of lists

我有一个对象('Flows' 类型),其中包含 'Flows'

类型的列表
class Flows{
 String id;
 String sequence;
 List<Flows> listOfFlows;
}

我想将所有嵌套列表(可以有任意数量的嵌套列表)的所有元素放入一个列表中。我们如何在java中通过递归来实现呢?

像这样的事情怎么样:

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);
        }
    }
}