组织菜单递归遍历

@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;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。