2017-08-10 80 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

你可以调用相同的方法来获取数据 –