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