ZQN
2024-06-17 b1ff19545212508d3f65741ab889f0b6df82a511
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
package com.project.common.utils;
 
import com.project.common.core.absclasses.TreeNodeManager;
import com.project.common.core.interfaces.ITreeNode;
 
import java.util.List;
 
public class TreeManager extends TreeNodeManager
{
 
    public TreeManager(List nodes) {
        super(nodes);
    }
 
    public static <T extends ITreeNode<T>> List<T> merge(List<T> items) {
        TreeNodeManager<T> forestNodeManager = new TreeNodeManager(items);
        items.forEach((forestNode) -> {
            if (forestNode.getParentId() != 0L) {
                ITreeNode<T> node = forestNodeManager.getTreeNodeAt(forestNode.getParentId());
                if (node != null) {
                    node.getChildren().add(forestNode);
                } else {
                    forestNodeManager.addParentId(forestNode.getId());
                }
            }
 
        });
        return forestNodeManager.getRoot();
    }
}