| | |
| | | for (PageRegionInfoResponse treeNode : nodeList){ |
| | | // 判断当前节点是否为根节点,此处注意:若parentId类型是String,则要采用equals()方法判断。 |
| | | if (Objects.isNull(treeNode.getParentIndexCode()) |
| | | || StringUtils.equals(treeNode.getParentIndexCode(),"null")) { |
| | | || StringUtils.equals(treeNode.getParentIndexCode(),"null") |
| | | || !isValidParentCode(treeNode.getParentIndexCode(),nodeList)) { |
| | | // 是,添加 |
| | | rootNodeList.add(treeNode); |
| | | } |
| | | |
| | | } |
| | | return rootNodeList; |
| | | } |
| | | |
| | | private boolean isValidParentCode(String parentIndexCode, List<PageRegionInfoResponse> nodeList) { |
| | | for (PageRegionInfoResponse treeNode : nodeList){ |
| | | // 判断当前节点是否为根节点,此处注意:若parentId类型是String,则要采用equals()方法判断。 |
| | | if ( StringUtils.equals(treeNode.getIndexCode(),parentIndexCode)) { |
| | | return true; |
| | | } |
| | | |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | |
| | | public List<PageRegionInfoResponse> buildTree(){ |
| | | // treeNodes:保存一个顶级节点所构建出来的完整树形 |
| | | List<PageRegionInfoResponse> treeNodes = new ArrayList<PageRegionInfoResponse>(); |
| | | // getRootNode():获取所有的根节点 |
| | | getRootNode();//:获取所有的根节点 |
| | | for (PageRegionInfoResponse treeRootNode : getRootNode()) { |
| | | // 将顶级节点进行构建子树 |
| | | treeRootNode = buildChildTree(treeRootNode); |
| | |
| | | // nodeList:所有节点集合(所有数据) |
| | | for (PageRegionInfoResponse treeNode : nodeList) { |
| | | // 判断当前节点的父节点ID是否等于根节点的ID,即当前节点为其下的子节点 |
| | | if (!Objects.isNull(treeNode.getParentIndexCode())&&treeNode.getParentIndexCode().equals(pNode.getRegionIndexCode())) { |
| | | if (!Objects.isNull(treeNode.getParentIndexCode())&&treeNode.getParentIndexCode().equals(pNode.getIndexCode())) { |
| | | // 再递归进行判断当前节点的情况,调用自身方法 |
| | | childTree.add(buildChildTree(treeNode)); |
| | | } |