树形结构实现之递归_zheng854938169

菜单目录树结构查询方法,树形结构的关键点在于递归

public class Menu {

   private String id;

   private String parentId;

   private String url;

   private List<Menu> children;

       /*省略getset*/

}

public class MenuTree {

   private List<Menu> menuList = new ArrayList<Menu>();

   public MenuTree(List<Menu> menuList) {

       this.menuList=menuList;

   }

   //建立树形结构

   public List<Menu> builTree(){

       List<Menu> treeMenus =new  ArrayList<Menu>();

       for(Menu menuNode : getRootNode()) {

           menuNode=buildChilTree(menuNode);

           treeMenus.add(menuNode);

       }

       return treeMenus;

   }

   //递归,建立子树形结构

   private Menu buildChilTree(Menu pNode){

       List<Menu> chilMenus =new  ArrayList<Menu>();

       for(Menu menuNode : menuList) {

           if(menuNode.getParentId().equals(pNode.getId())) {

               chilMenus.add(buildChilTree(menuNode));

           }

       }

       pNode.setChildren(chilMenus);

       return pNode;

   }

   //获取根节点

   private List<Menu> getRootNode() {

       List<Menu> rootMenuLists =new  ArrayList<Menu>();

       for(Menu menuNode : menuList) {

     // parentId为空就表示为第一级菜单

           if(menuNode.getParentId() == null) {

               rootMenuLists.add(menuNode);

           }

       }

       return rootMenuLists;

   }

}

本站由小牛团队全力维护,小牛十年了,大家已经步入中年 。本站源码全部经过团队成员测试并调试,价格可能比其它网站略贵几元钱,不解释!
小牛资源 » 树形结构实现之递归_zheng854938169

发表评论

全站资源亲测可用,价格略高几元,不解释

立即查看 了解详情