目录工具类

public static List makeTree(List menuList, Integer pid) {
        /**
         * 目录结构是有标识的,顺序结构
         * 从最开始出发,条件过滤出每一层根节点的目录
         * 遍历每一层的根节点
         * 先将每个根的局部信息保存起来,再从以余下的目录中寻找以当前根节点为父节点的子节点
         */
        List list = new ArrayList<>();
        Optional.ofNullable(menuList).orElse(new ArrayList<>())
                .stream()
                .filter(item -> item != null && item.getParentId() == pid)
                .forEach(dom -> {
                    SysMenu menu = new SysMenu();
                    BeanUtils.copyProperties(dom, menu);
                    List menus = makeTree(menuList, dom.getMenuId());
                    menu.setChildren(menus);
                    list.add(menu);
                });
        return list;
    }

你可能感兴趣的:(windows)