如何编写一个递归方法来查找父子

时间:2017-08-11 11:18:31

标签: javascript java angularjs json spring

This is to save the details with recursive.

这里我想从数据库中获取详细信息,并使用递归方法设置到我的bean中。所以我可以在angularUi树形态中显示出来。如何编写递归方法来设置我的bean。

我的数据库严格限制: - enter image description here

我将父母和孩子与rowId分开。您可以访问我的样本screen

例如: - 父亲的Rowid为1    这个1的孩子是1.1 和1.1的孩子是1.1.1这样会延长,,。

我将所有父母和孩子保存在一张高于图像的表格中。

每个对象(行)都会有items[]。如果父母有任何孩子,那么孩子将被添加到items[]数组中,如果该孩子有任何孩子,那么孩子将被添加到该行items[]的父母中...就像这样它会延长。

例如: - JSON对象是: -

{
    "id": 1,
    "rowId": "1",
    "items": [
      {
        "id": 10,
        "rowId": "1.1",
        "items": [
          {
            "id": 100,
            "rowId": "1.1.1",
            "items": [
              {
                "id": 1000,
                "rowId": "1.1.1.1",
                "items": []
              }
            ]
          }
        ]
      },
      {
        "id": 11,
        "rowId": "1.2",
        "items": []
      }
    ]
  }

我使用this answer.

保存了这些数据

但是在重新开始的过程中我遇到了问题。问题是在检索时不会有任何父和子,因为数据将保存在同一个表中。关系只是rowid。为此,我需要编写一个像保存一样的递归方法,并且需要将子项添加到父items[]数组中。

public class AdminComponentBean{

    List<MultiAdminComponent> componentListbean;
}

MultiAdminComponent.java: -

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;
}

在这里,我尝试检索所有细节并尝试将子项添加到parent.But它应该生成一个递归方法

List<MultiAdminComponent> componentList=BaseDAO.getAdminComponentDAOObject().getComponentDetails();
   if(null != componentList) {
       for(MultiAdminComponent itemsList : componentList){
           if(itemsList.getRowId().length().equals() "1"){//here parent row will come
               //by considering rowid I need to find the child of the rowId
               //child of 1 is 1.1
               //if 1.1 is child of 1 then I need to add that 1.1 object to `items[]` array of 1
               //like this it should work recursve
            }
        }
    }

0 个答案:

没有答案