Java以树形数据形式返回


示例表结构

 

 

 解决思路:

1、先查询出所有要分类的数据,以List存储

2、通过Java8的新特性stream来处理

3、通过递归获取子项目的List

4、要在返回实体中增加子项目

public class ProjectVO extends Project {
 /**
     * 子项目
     */
    private List<ProjectVO> children;

// setter 和getter方法
}
 
 
//查询出所有分类数据
List<ProjectVO> projectVOList = projectMapper.selectByUciDbId(projectVO);
return projectVOList.stream().filter(vo -> "0".equals(vo.getpParentId()))
.peek(vo -> vo.setChildren(getChildList(vo, projectVOList)))
.collect(Collectors.toList());

/**
* 根据当前类别,找出子类,并通过递归找出子类的子类 * * @param projectVO * @param projectVOList * @return */ private List<ProjectVO> getChildList(ProjectVO projectVO, List<ProjectVO> projectVOList) { return projectVOList.stream().filter(vo -> vo.getpParentId().equals(projectVO.getpId())) .peek(vo -> vo.setChildren(getChildList(vo, projectVOList))) .collect(Collectors.toList()); }

 

参考博客:https://www.cnblogs.com/chengming104/p/13612550.html

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM