【无标题】

递归遍历菜单树

```java

/**
* @author admin
* @date 2022/8/2
*/
public class TreeUtil {
/**
* 创建树结构
* @param regionTrees
* @return
*/
private List<RegionTree> tree(List<RegionTree> regionTrees) {
//返回的节点树
List<RegionTree> rootNodes = new ArrayList<>();
Iterator<RegionTree> it = regionTrees.iterator();
while (it.hasNext()) {
RegionTree next = it.next();
//parent(上级Id)为0的是根节点
if ("0".equals(next.getParentId())) {
rootNodes.add(next);
it.remove();
}
}
//遍历,找到二级节点
for (RegionTree regionTree : rootNodes) {
List<RegionTree> child = getChild(regionTrees, regionTree.getId().toString());
regionTree.setChildren(child);
}
return rootNodes;

}

/**
* 查子节点
*
* @param regions
* @param parentId
* @return
*/
private List<RegionTree> getChild(List<RegionTree> regions, String parentId) {

//子节点列表
List<RegionTree> childList = new ArrayList<>();
Iterator<RegionTree> it = regions.iterator();
while (it.hasNext()) {
RegionTree regionTree = it.next();
if (parentId.equals(regionTree.getParentId())) {
childList.add(regionTree);
it.remove();
}
}

//遍历 递归获取子节点的子节点
for (RegionTree regionTree : childList) {
List<RegionTree> child = getChild(regions, regionTree.getId().toString());
regionTree.setChildren(child);
}
//递归出口 childList长度为0
if (childList.size() == 0) {
return new ArrayList<>();
}
return childList;
}
}

```

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值