Java 递归 生成树形结构数据

  1. 定义树对象
public class RpType
{
    /** id */
    private Long id;

    /** 名称id */
    private String name;

    /** 备注 */
    private String remarks;

    /** 父节点id */
    private String parentId;

    /** 所有的子节点对象 */
    private List<RpType> childNode;
 }
  1. 递归代码
1、定义接口

    /**
     * 获取类型树列表
     */
    ("/getTypeTree")
    public List<RpType> getTypeTree() {
    	// 查询所有列表
        List<RpType> rpTypes = rpTypeService.selectRpTypeList(new RpType());
        List<RpType> resultList = getTree(rpTypes,"0");
        return resultList;
    }
 2、递归返回树结构
 private List<RpType> getTree(List<RpType> list, String pid) {
        List<RpType> tree = new ArrayList<>();
        for (RpType rpType : list) {
            if (rpType.getParentId().equals(pid)) { // 这里因为是定义的不是用一个数据类型,所以转换了一下
                rpType.setChildNode(getTree(list, String.valueOf(rpType.getId())));
                tree.add(rpType);
            }
        }
        return tree;
    }

3、结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值