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