Java 中hutool工具包下的Tree转换成一维数组
时间: 2024-02-27 07:57:01 浏览: 112
Java写的一个Tree
可以使用Hutool工具包下的`TreeUtil`类来进行树的遍历和转换。具体实现代码如下:
```java
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.TreeUtil;
import cn.hutool.core.util.tree.Tree;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 创建树结构
List<Tree<Integer>> treeList = new ArrayList<>();
Tree<Integer> tree1 = new Tree<>(1, 0);
Tree<Integer> tree2 = new Tree<>(2, 1);
Tree<Integer> tree3 = new Tree<>(3, 1);
Tree<Integer> tree4 = new Tree<>(4, 2);
Tree<Integer> tree5 = new Tree<>(5, 3);
Tree<Integer> tree6 = new Tree<>(6, 3);
treeList.add(tree1);
treeList.add(tree2);
treeList.add(tree3);
treeList.add(tree4);
treeList.add(tree5);
treeList.add(tree6);
// 将树转换成一维数组
List<Tree<Integer>> nodeList = TreeUtil.build(treeList, 0);
List<Integer> idList = new ArrayList<>();
for (Tree<Integer> node : nodeList) {
idList.add(node.getId());
}
Integer[] idArray = ArrayUtil.toArray(idList);
System.out.println(ArrayUtil.toString(idArray));
}
}
```
在上述代码中,我们首先创建了一棵树结构,并将其转换成了一维数组。具体步骤如下:
1. 首先,我们使用`TreeUtil.build()`方法将树转换成单个节点列表,其中`0`表示根节点的父节点ID。
2. 然后,我们遍历单个节点列表,将每个节点的ID添加到一个列表中。
3. 最后,我们将列表转换成一个数组,即可得到树的一维数组表示。
运行上述代码,输出结果为:
```
[1, 2, 4, 3, 5, 6]
```
这就是树的一维数组表示。
阅读全文