public class Node {
private String id = "";
private String name = "";
private String pid = "";
private List<Node> children = null;
}
private static List<Node> formatTree(List<Node> data) {
List<Node> res = new ArrayList<>();
for(Node m: data) {
if(StringUtils.isEmpty(m.getPid())) {
res.add(recurive(m, data));
}
}
return res;
}
private static Node recurive( Node node, List<Node> data) {
for(Node mc: data) {
if(StringUtils.equals(mc.getPid(), node.getId())) {
if(node.getChildren() == null) {
node.setChildren(new ArrayList<Node>());
}
node.getChildren().add(recurive(mc, data));
}
}
return node;
}
这个博客主要介绍了如何处理树形数据结构。`Node`类定义了包含ID、名称和父ID的节点,并且节点可以有子节点。`formatTree`方法遍历数据并构建树结构,通过`StringUtils.isEmpty(m.getPid())`筛选根节点,然后用`recurive`方法递归地添加子节点。递归函数检查每个节点的PID是否等于当前节点的ID,如果是,则将该节点添加到子节点列表中。这种方法有效地组织了具有层级关系的数据。
2117

被折叠的 条评论
为什么被折叠?



