Java递归树形结构


private List<ZcprojectFieldDto> buildGeneralTree(List<ZcprojectFieldDto> list) {
         List<ZcprojectFieldDto> result = new ArrayList<>();
         //1. 构建一级节点
         for (ZcprojectFieldDto zcprojectFieldDto : list) {
             if (zcprojectFieldDto.getPId().equals("0")) {
                 result.add(zcprojectFieldDto);
             }
         }
 
         // 2、递归获取子节点
         for (ZcprojectFieldDto parent : result) {
             parent = recursiveTree(parent, list);
         }
         return result;
     }
 
     /**
      * 递归
      *
      * @return
      */
     private ZcprojectFieldDto recursiveTree(ZcprojectFieldDto parent, List<ZcprojectFieldDto> list) {
         for (ZcprojectFieldDto zcprojectFieldDto : list) {
             if (Objects.equals(parent.getId(), zcprojectFieldDto.getPId())) {
                 zcprojectFieldDto = recursiveTree(zcprojectFieldDto, list);
                 parent.getChildren().add(zcprojectFieldDto);
             }
         }
         return parent;
     }


免责声明!

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



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