java id和pid三级联动展示结构树
时间: 2024-04-08 17:34:46 浏览: 30
可以使用递归算法来实现Java ID和PID的三级联动展示结构树。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TreeDemo {
public static void main(String[] args) {
List<Node> nodeList = new ArrayList<>();
nodeList.add(new Node(1, 0, "Root"));
nodeList.add(new Node(2, 1, "Node 1"));
nodeList.add(new Node(3, 1, "Node 2"));
nodeList.add(new Node(4, 2, "Node 1.1"));
nodeList.add(new Node(5, 2, "Node 1.2"));
nodeList.add(new Node(6, 3, "Node 2.1"));
Map<Integer, List<Node>> map = new HashMap<>();
for (Node node : nodeList) {
if (!map.containsKey(node.getPid())) {
map.put(node.getPid(), new ArrayList<>());
}
map.get(node.getPid()).add(node);
}
List<Node> rootList = map.get(0);
for (Node node : rootList) {
displayTree(node, map, 0);
}
}
public static void displayTree(Node node, Map<Integer, List<Node>> map, int level) {
StringBuilder prefix = new StringBuilder();
for (int i = 0; i < level; i++) {
prefix.append(" ");
}
System.out.println(prefix.toString() + node.getName());
if (map.containsKey(node.getId())) {
List<Node> childList = map.get(node.getId());
for (Node child : childList) {
displayTree(child, map, level + 1);
}
}
}
}
class Node {
private int id;
private int pid;
private String name;
public Node(int id, int pid, String name) {
this.id = id;
this.pid = pid;
this.name = name;
}
public int getId() {
return id;
}
public int getPid() {
return pid;
}
public String getName() {
return name;
}
}
```
以上代码中,`Node` 类表示树节点,包含节点的 ID、父节点的 ID 和节点名称。`TreeDemo` 类中的 `main` 方法演示了如何构建节点列表,并利用递归算法展示结构树。首先,将节点列表按照父节点 ID 分组存储在 `Map` 中。然后,从根节点开始递归展示每个节点及其子节点,通过缩进表示层级关系。
你可以根据自己的需求修改节点的属性和展示方式。注意,在实际应用中,可能需要从数据库或其他数据源获取节点数据,并将展示方式适配到前端页面中。
相关推荐
![sql](https://img-home.csdnimg.cn/images/20210720083646.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)