@Data
public class SysCityDTO {
private Long id;
private String name;
private Long pid;
private List<SysCityDTO> children;
public static List<SysCityDTO> listToTree(List<SysCityDTO> list, int pid) {
//用遞歸找子。
List<SysCityDTO> treeList = new ArrayList<>();
for (SysCityDTO tree : list) {
if (tree.getPid() == pid) {
treeList.add(findChildren(tree, list));
}
}
return treeList;
}
private static SysCityDTO findChildren(SysCityDTO tree, List<SysCityDTO> list) {
for (SysCityDTO node : list) {
if (node.getPid().equals(tree.getId())) {
if (tree.getChildren() == null) {
tree.setChildren(new ArrayList<>());
}
tree.getChildren().add(findChildren(node, list));
}
}
return tree;
}
}
遞歸的方法列表轉樹形結構
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.