多层树遍历实现

场景架构

         工做中组织架构存储多层,好比部门、处室、办公室等。当点击一个父节点时,须要展现该节点,以及挂载到该节点下的全部后代节点的数据。这时候就须要根据一个节点找出他的全部的后代节点。就是须要根据一个父节点遍历全部子节点。this

实现方式递归

         这种层级树遍历通常都须要使用递归调用。get

        首先须要断定当前这个节点有没有后代节点,若是有则进行遍历。获取下一层节点。io

若是没有:则遍历结束。若是有子节点,则须要继续遍历子节点。List

代码实现:遍历

/**数据

*功能:获取直接子节点query

*/工作

private List getChild(String pid) throws Exception{

        List voList = this.queryListByPid(pid);

        List idList = new ArrayList();

        if(voList!=null){

                 for(int i=0,max=voList.size();i<max;i++){

                     AddressCatalogVO vo = (AddressCatalogVO)voList.get(i);

                     idList.add(vo.getId());

                 }

        }

        return idList;

    }

        //使用递归遍历全部后代子节点

         public List getAllChildern(String pid) throws Exception{

                   List childList = getChild(pid);

                  if(childList!=null&&childList.size>0){ 

                          for(int i=0;i<childList.size();i++){

                                String childId = (String) childList.get(i);

                                     List tempList = getAllChildern(childId);

                                     if(tempList!=null){

                                         childList.addAll(tempList);

                                     }

                            }

                }

                   return childList;

         }

相关文章
相关标签/搜索