list转成tree返回前端

参考网址人家是封装的反射,泛型

耻辱,现在不会用他们封装的方法

到处之前excel导入的数据,参照之前写的网址poi低版本导入excel表头

就贴一个control层

java 复制代码
  @GetMapping(value = "/all")
    @Log("查询excel测试导入表头不带分页")
    @ApiOperation("查询excel测试导入表头不带分页")
//    @PreAuthorize("@el.check('sysTest:list')")
    public ResponseEntity<PageResult<SysTest>> querySysTest(SysTestQueryCriteria criteria){
        List<SysTest> sysTests = sysTestService.queryAll(criteria);
//        将list处理成tree
        ArrayList<SysTest> roots = new ArrayList<>();
        for (SysTest tree:sysTests){
            String parentlevel = tree.getParentlevel();
            if(StrUtil.isBlank(parentlevel)){
                roots.add(tree);
            }
        }
        sysTests.removeAll(roots);
        // 为根节点添加孩子节点
        for (SysTest tree:roots){
            addChild(tree,sysTests);
        }
//        System.out.println(roots);
        return new ResponseEntity<>(PageUtil.toPage(roots),HttpStatus.OK);
    }

    public void addChild(SysTest tree,List<SysTest> sysTests){
        String headid = tree.getHeadid();
        List<SysTest> children = tree.getChildren();
        for(SysTest cc : sysTests){
            if(headid.equals(cc.getParentlevel())){
                if(children == null){
                    children = new ArrayList<>();
                }
                children.add(cc);
//                写死的时候才知道人家封装说的(我debug发现自己是null,没有初始化)
// 重设目标节点的孩子节点集合,这里必须重设,因为如果目标节点的孩子节点是null的话,这样是没有地址的,就会造成数据丢失,所以必须重设,如果目标节点所在类的孩子节点初始化为一个空集合,而不是null,则可以不需要这一步,因为java一切皆指针
                tree.setChildren(children);
                addChild(cc,sysTests);
            }
        }
    }
相关推荐
·薯条大王9 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
用户938515635079 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
CodeSheep9 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
鱼樱前端9 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
浮生望10 小时前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
90后的晨仔10 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js
白狐_79810 小时前
408数据结构第5章:二叉树遍历序列题——技巧、判断与真题型总结
数据结构
90后的晨仔10 小时前
别再搞混了!uni-app 中 node_modules 和 uni_modules 到底是什么关系?
前端
kyriewen11 小时前
面试官问"这段逻辑为什么这样写"——我才发现,这半年我写的代码,我自己都解释不了
前端·javascript·面试
谢小飞11 小时前
大文件上传很难?学会这招,GB文件秒传不是梦
前端·node.js