我在递归方面遇到了问题。我有一个对象,它包含一个自身的列表,列表中的每个对象都可以再次包含一个列表。这个对象表示一棵树。
现在我想迭代所有可能的对象以找到一个特定的对象,但我失败了。目前我的方法无法返回到顶层,我不知道如何解决它。
方法:
private Object selectSpecificItem(TreeObject treeObject) {
for (TreeObject to : treeObject.getChildren()) {
Object data = to.getData();
if (data instanceof PaymentOffice) {
PaymentOffice po = (PaymentOffice) data;
if (po.getCode().equals(getModelObject().getLocation())) {
return to;
}
} else if (to.getChildren().length > 0) {
selectSpecificItem(to);
}
}
return null;
}
假设有以下的列表结构:
Item1
- Item1.1
- Item1.2
- Item1.3
- Item1.4
Item2
Item3
现在它只迭代所有 1/1.x 的项,但不是 2/3。而我现在需要找到的项是 Item3
我该如何更改递归以迭代所有元素?
selectSpecificItem(to);
更改为return selectSpecificItem(to);
。 - LinotreeObject
是否持有一个PaymentOffice,只是它的子节点。 - Tibrogargan