2017-08-10 78 views
0

refference.如何獲得父母的所有兒童和使用遞歸

自己的孩子在這裏,我希望得到家長和孩子的他們的孩子。 這是我的Screen.

在這個屏幕我想保存所有的行。爲此我創建了follwing豆。

public class AdminComponentBean{ 

    List<MultiAdminComponent> componentListbean; 
} 

另一個bean: -

public class MultiAdminComponent { 

    private String componentName; 
    private String componentIdentification; 
    private String componentType; 
    private String componentState; 
    private String componentUrl; 
    private String rowId; 
    private List<MultiAdminComponent> items; 
    } 

在我的服務我嘗試檢索所有的孩子的。但我無法獲得父母的孩子。

List <MultiAdminComponent> adminComponentList = adminComponentBean.getComponentListbean(); 
     for (MultiAdminComponent adminComponentListBean: adminComponentList) { 

      flag = BaseDAO.getAdminComponentDAOObject().saveParentComponentDetails(adminComponentListBean);//Here the parents will save but not the childs 
      for (MultiAdminComponent adminComponentchild: adminComponentListBean.getItems()) {//here I am trying to save childs 

      } 
} 

回答

2

你可以寫這樣的遞歸方法:

void addChildren(MultiAdminComponent parent, List<MultiAdminComponent> children) { 
    if(null != parent.getItems()) { 
     for(MultiAdminComponent child : parent.getItems()) { 
      children.add(child); 
      addChildren(child, children); 
     } 
    } 
} 

而且對空列表調用它,如:

MultiAdminComponent parent; //parent 
List<MultiAdminComponent> children = new ArrayList<>(); 
addChildren(parent, children); 

方法調用後,children名單應有的一切孩子的對象。

+0

上面的代碼工作正常,並且在獲取數據時也需要編寫相同類型的遞歸方法? – Murali

+0

https://stackoverflow.com/questions/45629162/how-to-get-parent-and-child-records-with-recursive-method – Murali

+0

你可以調用相同的方法來獲取數據 –