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 > List merge(List items) { TreeNodeManager forestNodeManager = new TreeNodeManager(items); items.forEach((forestNode) -> { if (forestNode.getParentId() != 0L) { ITreeNode node = forestNodeManager.getTreeNodeAt(forestNode.getParentId()); if (node != null) { node.getChildren().add(forestNode); } else { forestNodeManager.addParentId(forestNode.getId()); } } }); return forestNodeManager.getRoot(); } }