ListBusinessDomainPo List转为Tree结构
要将一个List转换为Tree结构,需要确定Tree的根节点以及每个节点的子节点。以下是一个示例代码,将List
public class BusinessDomainPo {
private int id;
private int parentId;
private String name;
// 其他属性...
// 省略构造方法、getter和setter...
}
public class TreeNode {
private BusinessDomainPo data;
private List<TreeNode> children;
// 省略构造方法、getter和setter...
}
public class ListToTreeConverter {
public TreeNode convert(List<BusinessDomainPo> list) {
Map<Integer, TreeNode> nodeMap = new HashMap<>();
TreeNode root = null;
// 遍历List,创建TreeNode并放入节点Map中
for (BusinessDomainPo po : list) {
TreeNode node = new TreeNode();
node.setData(po);
node.setChildren(new ArrayList<>());
nodeMap.put(po.getId(), node);
if (po.getParentId() == 0) {
// 如果parentId为0,则为根节点
root = node;
}
}
// 遍历List,将每个节点添加到对应父节点的children列表中
for (BusinessDomainPo po : list) {
if (po.getParentId() != 0) {
TreeNode parent = nodeMap.get(po.getParentId());
if (parent != null) {
parent.getChildren().add(nodeMap.get(po.getId()));
}
}
}
return root;
}
}
使用示例:
List<BusinessDomainPo> list = new ArrayList<>();
// 添加业务领域数据到list...
ListToTreeConverter converter = new ListToTreeConverter();
TreeNode root = converter.convert(list);
通过上述代码,可以将List
原文地址: https://www.cveoy.top/t/topic/iXmw 著作权归作者所有。请勿转载和采集!