java如何快速封装树形结构数据
时间: 2024-03-21 19:43:46 浏览: 101
在 Java 中,可以使用递归算法来快速封装树形结构数据。以下是一个示例代码,展示如何使用递归算法来封装树形结构数据:
```java
public class TreeUtils {
/**
* 将数据列表封装成树形结构
* @param dataList 数据列表
* @param <T> 数据类型
* @return 树形结构
*/
public static <T extends TreeNode> List<T> buildTree(List<T> dataList) {
List<T> treeList = new ArrayList<>();
// 构建根节点
for (T node : dataList) {
if (node.getParentId() == null || node.getParentId().equals("")) {
treeList.add(node);
}
}
// 构建子节点
for (T node : treeList) {
buildChildren(node, dataList);
}
return treeList;
}
/**
* 递归构建子节点
* @param parentNode 父节点
* @param dataList 数据列表
* @param <T> 数据类型
*/
private static <T extends TreeNode> void buildChildren(T parentNode, List<T> dataList) {
for (T node : dataList) {
if (node.getParentId() != null && node.getParentId().equals(parentNode.getId())) {
parentNode.addChild(node);
buildChildren(node, dataList);
}
}
}
}
```
在上面的示例代码中,buildTree() 方法用于将数据列表封装成树形结构,buildChildren() 方法用于递归构建子节点。在构建树形结构时,首先需要找到根节点,然后递归构建子节点。对于每个节点,可以通过 addChild() 方法将其添加到父节点的 children 列表中。
使用上述代码,可以快速地封装树形结构数据,并且可以方便地遍历和操作树形结构数据。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.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)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)