java List<Object> 处理成树形结构
时间: 2024-02-20 10:27:50 浏览: 64
好的,我理解了。针对您的问题,您可以使用递归方式将List<Object>处理为树形结构。具体实现可以参考以下代码:
```
public class TreeNode {
private int id;
private String name;
private List<TreeNode> children;
// 构造函数
public TreeNode(int id, String name) {
this.id = id;
this.name = name;
this.children = new ArrayList<>();
}
// 添加子节点
public void addChild(TreeNode node) {
children.add(node);
}
// 递归将List<Object>处理成树形结构
public static List<TreeNode> buildTree(List<Object> list) {
// 定义根节点
TreeNode root = new TreeNode(0, "root");
// 将list中的元素添加到对应的节点下
for (Object obj : list) {
Map<String, Object> map = (Map<String, Object>)obj;
int id = (int)map.get("id");
String name = (String)map.get("name");
int parentId = (int)map.get("parentId");
TreeNode node = new TreeNode(id, name);
TreeNode parent = findNodeById(root, parentId);
parent.addChild(node);
}
// 返回根节点下的子节点列表
return root.children;
}
// 根据id查找节点
private static TreeNode findNodeById(TreeNode node, int id) {
if (node.id == id) {
return node;
}
for (TreeNode child : node.children) {
TreeNode result = findNodeById(child, id);
if (result != null) {
return result;
}
}
return null;
}
}
// 使用示例:
List<Object> list = new ArrayList<>();
// 添加元素...
List<TreeNode> tree = TreeNode.buildTree(list);
```
希望这个答案能够帮助到您!
阅读全文