摘要: 本文主要介绍父子节点的List转 tree
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| 1、构建tree 2、从数据库查询list 3、将list转为tree
@Data public class TreeNode implements Serializable {
private static final long serialVersionUID = 7297611707550474985L; private Integer id; private Integer parentId; private String name; private List<TreeNode> children; public TreeNode(String id, String name, String parentId) { this.id = id; this.parentId = parentId; this.name = name; } } private final Integer PARENT_ID=0;
private List<TreeNode> loopToTree(List<TreeNode> treeList) { List<TreeNode> resList = new ArrayList<>(); for (TreeNode parent : treeList) { if (PARENT_ID==parent.getParentId()) { resList.add(parent); } for (TreeNode child : treeList) { if (child.getParentId() == parent.getId()) { if (parent.getChildren() == null) { parent.setChildren(new ArrayList<>()); } parent.getChildren().add(child); } } } return resList; }
private List<TreeNode> recursionToTree(List<TreeNode> treeList) { List<TreeNode> resList = new ArrayList<>(); for (TreeNode parent : treeList) { if (PARENT_ID==parent.getParentId()) { resList.add(findChildren(parent, treeList)); } } return resList; } private TreeNode findChildren(TreeNode parent, List<TreeNode> treeList) { for (TreeNode child : treeList) { if (parent.getId().equals(child.getParentId())) { if (parent.getChildren() == null) { parent.setChildren(new ArrayList<>()); } parent.getChildren().add(findChildren(child, treeList)); } } return parent; }
|
感谢鼓励