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