java拼接树状结构数据

1.在domain实体类里面加上一个字段(前台需要的树状结构字段)

//这里前台需要的是children 类型的树状结构
private List<CourseType> children = new ArrayList<>();

2.在service层里面查询所有数据,然后进行拼接树状格式

public List<CourseType> treeData() {

        //1.查询全部的数据
        List<CourseType> courseTypes = baseMapper.selectList(null);

        //2.准备父容器(用于装最外层的分类)
        List<CourseType> maxCourseTypes = new ArrayList<>();

        //3.判断是否是最外层的父分类,最后就返回的是这些父分类
        for (CourseType courseType : courseTypes) {
            //用字段pid为0来判断是否是最外层的父分类
            if(courseType.getPid().longValue()==0){
                //父分类
                maxCourseTypes.add(courseType);
            }else {
                //子分类

                //4.根据这个子分类的pid找到对应父分类,并将它装到对应的父分类里面
                CourseType fatherCourseType = null;

                //5.循环所有数据找到对应的父类并将它装到父容器里面
                for (CourseType type : courseTypes) {

                    if(courseType.getPid().longValue()==type.getId().longValue()){
                        //这个是父类
                        fatherCourseType=type;

                        break;
                    }

                }

                //6.最后将这次循环的子分类装到父分类的children里面:前提是要里面有值(用的都是一个对象,所以五个最外层父容器里面就包含了对应的CourseType)
                if(fatherCourseType!=null){
                    fatherCourseType.getChildren().add(courseType);
                }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值