美文网首页
组织菜单递归遍历

组织菜单递归遍历

作者: 王小胖v9 | 来源:发表于2020-07-16 11:38 被阅读0次
@Test
    public void diGuiTest(){

        TreeNode treeNode = new TreeNode("1","0","一级菜单");
        TreeNode treeNode2 = new TreeNode("2","1","二级菜单");
        TreeNode treeNode3 = new TreeNode("3","1","二级菜单");
        TreeNode treeNode4 = new TreeNode("4","2","三级菜单");
        TreeNode treeNode5 = new TreeNode("5","2","三级菜单");
        TreeNode treeNode6 = new TreeNode("6","3","三级菜单");
        TreeNode treeNode7 = new TreeNode("7","3","三级菜单");
        List<TreeNode> treeNodes = Arrays.asList(treeNode, treeNode2, treeNode3, treeNode4, treeNode5, treeNode6, treeNode7);

        List<TreeNode> build = this.build(treeNodes, "0");
        log.info("tree node : {}",JSONObject.toJSONString(build));

    }

    private List<TreeNode> build(List<TreeNode> treeNodes,String pid){

        List<TreeNode> result = new ArrayList<>();

        for (TreeNode treeNode : treeNodes) {
            if (treeNode.getPid().equals(pid)){
                result.add(treeNode);
                List<TreeNode> build = this.build(treeNodes, treeNode.getId());
                treeNode.setTreeNodes(build);
            }
        }

        return result;
    }

    @Data
    public class TreeNode{

        private String id;

        private String pid;

        private String name;

        public TreeNode(String id, String pid, String name) {
            this.id = id;
            this.pid = pid;
            this.name = name;
        }

        private List<TreeNode> treeNodes;
    }

相关文章

网友评论

      本文标题:组织菜单递归遍历

      本文链接:https://www.haomeiwen.com/subject/ofkphktx.html