java递归生成树型结构方式
作者:青艾_XY
文章介绍了如何使用Java递归生成树形结构,包括获取数据、生成树形结构、查询子节点等步骤,作者分享了自己的经验,希望能对大家有所帮助
java递归生成树
1.获取数据
public List<TreeClassifyRespVO> getTreeClassifyList(ClassifyPageReqVO reqVO) {
List<ClassifyDO> classifyList = classifyMapper.selectList(reqVO);
List<TreeClassifyRespVO> childClassifyResp = ClassifyConvert.INSTANCE.convertList01(classifyList);
return getClassifyTree(childClassifyResp);
}2.生成树形结构
public List<TreeClassifyRespVO> getClassifyTree(List<TreeClassifyRespVO> childClassifyResp) {
// 返回的树形数据
List<TreeClassifyRespVO> tree = new ArrayList<TreeClassifyRespVO>();
// 第一次遍历
for (TreeClassifyRespVO treeClassify : childClassifyResp) {
// 找到根节点,这里我的根节点的pid为0
if (treeClassify.getPid()==0) {
tree.add(findChild(treeClassify, childClassifyResp));
}
}
return tree;
}3.查询子节点
private TreeClassifyRespVO findChild(TreeClassifyRespVO treeClassify, List<TreeClassifyRespVO> list) {
// 定义list用于存储子节点
List<TreeClassifyRespVO> children = new ArrayList<TreeClassifyRespVO>();
for (TreeClassifyRespVO node : list) {
// 找到根节点,这里我的根节点的pid为0
if (node.getPid().equals(treeClassify.getId())) {
// 调用递归
children.add(findChild(node, list));
}
}
treeClassify.setChildren(children);
return treeClassify;
}4.效果

总结以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
