java 建树_java实现tree树形结构

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

树节点遍历工具类:

@UtilityClass 2 public class TreeUtil { 3 /** 4 * 两层循环实现建树 5 * 6 * @param treeNodes 传入的树节点列表 7 * @return 8 */ 9 public List bulid(List treeNodes, Object root) {10 11 List trees = new ArrayList<>();12 13 for (T treeNode : treeNodes) {14 15 if (root.equals(treeNode.getParentId())) {16 trees.add(treeNode);17 }18 19 for (T it : treeNodes) {20 if (it.getParentId() == treeNode.getId()) {21 if (treeNode.getChildren() == null) {22 treeNode.setChildren(new ArrayList<>());23 }24 treeNode.add(it);25 }26 }27 }28 return trees;29 }30 31 /**32 * 使用递归方法建树33 *34 * @param treeNodes35 * @return36 */37 public List buildByRecursive(List treeNodes, Object root) {38 List trees = new ArrayList();39 for (T treeNode : treeNodes) {40 if (root.equals(treeNode.getParentId())) {41 trees.add(findChildren(treeNode, treeNodes));42 }43 }44 return trees;45 }46 47 /**48 * 递归查找子节点49 *50 * @param treeNodes51 * @return52 */53 public T findChildren(T treeNode, List treeNodes) {54 for (T it : treeNodes) {55 if (treeNode.getId() == it.getParentId()) {56 if (treeNode.getChildren() == null) {57 treeNode.setChildren(new ArrayList<>());58 }59 treeNode.add(findChildren(it, treeNodes));60 }61 }62 return treeNode;63 }64 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值