• 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

  • 相关阅读:
    Photoshop操作指南
    Photoshop操作指南
    财经法规四-2
    财经法规四-1
    财经法规三-3
    财经法规复习三-2
    财经法规复习三-1
    财经法规复习卷一-2
    财经法规二-3
    财经法规二-2
  • 原文地址:https://www.cnblogs.com/gslgb/p/13686462.html
Copyright © 2020-2023  润新知