概述
一、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查询出的数据转为树形结构(list)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复