1
我正在使用Java尝试递归迭代对象。为了简化我的例子,假设这个类被称为Simple,它包含一个ID和一个可以包含0到n个其他Simple对象的列表,而这些Simple对象有一个可以包含0到n个其他Simple对象的列表,等使用Java中的对象列表迭代对象的最佳方法
我想要做的是传递一个简单和一个ID,并让我的方法返回匹配该ID的简单。下面是我写的方法:
public static Simple getSimpleById(Simple simple, int id) {
if (simple.getId() == id) {
return simple;
} else {
for (Simple s : simple.getSimpleList()) {
return getSimpleById(s, id);
}
}
return null; // no match found
}
的问题是使用递归的方法调用 - 用一个return语句,我的方法尽快退出,因为它击中一个简单的有一个空列表。如果没有返回语句,当找到匹配项时,Simple将返回给调用者,并且该方法只是继续迭代。
我可以完成我需要做的递归还是我吠叫错误的树?我认为这是导致这个问题的列表,有没有更好的方法来做到这一点?
哇,这么简单(没有双关语意),我不知道为什么我没有想到要试试这个。感谢您的快速响应,这似乎是完美的。 – SourMonk