我正在研究一种方法,该方法应该返回包含所有后代的数组列表。它几乎可以工作,但第一个(“最高”)人总是包括在内,但我不需要他。有人可以改进我的代码吗?谢谢
getChildren - 仅返回一个人的孩子
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;
}
}
梵蒂冈之花
犯罪嫌疑人X
相关分类