java将有父子关系的list转换为树形结构

项目需求:

在项目对接过程中,被调用方给返回了一个对象列表,对象中包含id和parentId,但返回的数据没有层级结构,需要调用方自己组装成树级结构;

需求分析:

由于返回的是否无序的列表,首先需要找到顶级结构,然后更加parentId获取子级,递归循环,指定子级没有后代信息;

需求实现:

想到两种方式:
第一种、首先想到的是循环列表,对一个列表进行多次循环,每次只找一级,即可实现;
第二种、先根据parentId聚合,然后再对聚合map进行递归;

相对来说第二种方式,比较合适;但是需要考虑到parentId不存在的情况;

  • 先找到顶级,过滤条件为parentId不存在:
//没有parentid
        List<TemplateInfo> topList =
            templateInfoList

你可能感兴趣的:(Java生产环境,java,开发语言)