gpt4 book ai didi

java - 如何在Java中的arraylist中递归所有子级

转载 作者:行者123 更新时间:2023-12-01 17:43:36 25 4
gpt4 key购买 nike

我正在开发一个方法,该方法应该返回一个包含所有后代的数组列表。它几乎可以工作,但第一个(“最高”)人总是包括在内,但我不需要他。有人可以改进我的代码吗?谢谢

getChildren - 仅返回一个人的 child

public ArrayList<Person> getDescendants() {
ArrayList<Person> descendants = new ArrayList<Person>();
ArrayList<Person> next = this.getChildren();
if (next.size() != 0) {
for (int i = 0; i < next.size(); i++) {
ArrayList<Person> b = next.get(i).getDescendants();
descendants.addAll(b);
if (!descendants.contains(this)) {
descendants.add(this);
}
}
return descendants;
} else {
descendants.add(this);
return descendants;
}
}

最佳答案

您的代码似乎过于复杂。你是这个意思吗?

public ArrayList<Person> getDescendants() {
ArrayList<Person> descendants = new ArrayList<Person>();
for (Person child : this.getChildren()) {
descendants.add(child);
descendants.addAll(child.getDescendants());
}
return descendants;
}

关于java - 如何在Java中的arraylist中递归所有子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58035644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com