1. 程式人生 > 其它 >Java遞迴樹形結構

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; }