【发布时间】:2021-09-19 01:08:52
【问题描述】:
我想实现一个递归函数,它遍历列表中对象的子列表,并将子列表中的所有元素添加到一个大列表中。
我的对象如下:
List
从一个依赖于任务 B 的任务开始,然后又依赖于任务 C 和 D,我想递归地遍历每个任务并将它们添加到一个大列表中,其中包括任务 A 的每个依赖任务.
public List<Task> addDependencies(List<Task> tasks) {
for (Task task: tasks) {
if (!task.getDependsOn().isEmpty()) {
tasks.addAll(addDependencies(task.getDependsOn()));
return tasks;
} else {
return tasks;
}
}
return tasks;
}
这是我尝试过的,但它不起作用,因为它会引发 InvocationTargetException。我正在尝试解决我的问题,尝试在我的大脑中调试它大约 2 小时,但无法解决。
【问题讨论】:
-
看来您混淆了输入列表和输出列表,因为您的方法采用输入参数,修改它并返回相同的引用,这简直是多余的。您要修改原始列表还是要在新列表中提供结果?
-
1.请提供 InvocationTargetException 的完整堆栈跟踪,2. 请添加示例以重现异常。
标签: java list algorithm recursion