這是我的場景。我有以下的目的;如何編寫一個遞歸方法來檢查這種情況?
public class MyTemplate{
private MyTemplate[]childTemplates;
}
現在在相同類中我有保持相同的對象,其在這種情況下是一個模板的子元素的數組。我需要的是能夠遍歷這些元素中的每個元素和元素,因爲這可以像樹結構一樣。我目前無法想象一種能夠涵蓋元素內每個孩子元素的方式。
感激,如果任何人都可以直接我在正確的方向。
這是我的場景。我有以下的目的;如何編寫一個遞歸方法來檢查這種情況?
public class MyTemplate{
private MyTemplate[]childTemplates;
}
現在在相同類中我有保持相同的對象,其在這種情況下是一個模板的子元素的數組。我需要的是能夠遍歷這些元素中的每個元素和元素,因爲這可以像樹結構一樣。我目前無法想象一種能夠涵蓋元素內每個孩子元素的方式。
感激,如果任何人都可以直接我在正確的方向。
喜歡這個?
public class MyTemplate
{
private MyTemplate[] childTemplates;
void iterate()
{
// do something with this
for (MyTemplate template: childTemplates)
template.iterate();
}
}
您還可以使用每個模板進行處理:
public class MyTemplate
{
private MyTemplate[] childTemplates;
void iterate()
{
preProcess();
for (MyTemplate template: childTemplates)
template.iterate();
postProcess();
}
void preProcess()
{
// do something before iterating through the children
}
void postProcess()
{
// do something afterwards
}
}
謝謝,這也可以。欣賞時間爲答案。 – dinukadev
試試這個:
public traverse() {
if(children == null || children.size == 0) {
return;
}
for(i = 0; i < children.size; i++) {
children[i].doSomething();
children[i].traverse();
}
}
Thx幫助埃米爾。特別是處理空方案的部分。 – dinukadev
每個模板本身都可以有自己的孩子,如此下去。我如何遍歷每個分支和支行? – dinukadev
他已經這麼做了,看看遞歸調用。 – Swapnil
哦,是的。對不起,今天有一個延遲的日子:D。 Thx很多的幫助。這像一個魅力。遞歸方法總是讓我感到困惑:)。乾杯 – dinukadev