我是靠谱客的博主 淡定唇膏,这篇文章主要介绍利用递归将MySQL查询出的数据转为树形结构(list),现在分享给大家,希望可以做个参考。

一、pojo类

//树形节点id
private String cId;
//树形节点名称
private String cName;
//标签创建人
private String cCreator;
//团队id
private String cTeamId;
//标签颜色
private Byte nColour;
//是否是父级标签
private Byte nLabelType;
//父级id
private String cPid;
//是否删除
private Byte nDelete;
//标签管理子集
rivate List<TCaseLabel> childLabel =new ArrayList();

//set/get省略……
//有参和无参构造省略……
//toString方法省略……

二、封装工具类

     /**
     * 使用递归方法建树
     * @param menuTrees  子节点集合
     * @return List<MenuTree>
     */
    public static List<TCaseLabel> buildByRecursive(List<TCaseLabel> labelTrees) {
        List<TCaseLabel> trees = new ArrayList<>();
        for (TCaseLabel labelTree : labelTrees) {
         //菜单级别为0,则是一级数据(本次结构最多只有两级,所以直接获取根目录)
            if ("0".equals(labelTree.getcPid())) {
                trees.add(findChildren(labelTree,labelTrees));
            }
            /*菜单级别为0,则是一级数据,根据实际情况判断可修改相关关联判断
            if ("0".equals(menuTree.getLevel())) {
                trees.add(findChildren(menuTree,menuTrees));
            }*/
        }
        return trees;
    }

    /**
     * 递归查找子节点
     * @param menuTree  菜单数对象
     * @param menuTrees  子节点
     * @return MenuTree
     */
    private static TCaseLabel findChildren(TCaseLabel labelTree,List<TCaseLabel> labelTrees) {
        for (TCaseLabel it : labelTrees) {
            if(labelTree.getcId().equals(it.getcPid())) {
                if (labelTree.getChildLabel() == null) {
                 labelTree.setChildLabel(new ArrayList<TCaseLabel>());
                }
                labelTree.getChildLabel().add(findChildren(it,labelTrees));
            }
        }
        return labelTree;
    }

三、调用

List<TCaseLabel> parentList = buildByRecursive(tCaseLabelMapper.queryLabelList(label));

比较简单,嗯~但还是记一下吧♥

最后

以上就是淡定唇膏最近收集整理的关于利用递归将MySQL查询出的数据转为树形结构(list)的全部内容,更多相关利用递归将MySQL查询出内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(114)

评论列表共有 0 条评论

立即
投稿
返回
顶部