Java 构建树结构的公共方法
一、前提
pId 需要传入用来确认第一级的父节点,而且 pId 可以为 null。
树实体类必须实现:TreeNode 接口
MyTreeVo 必须有这三个属性:id、pId、children
可以根据不同需求,配置 TreeNode 和 MyTreeVo 中固定的属性
二、代码
定义 TreeNode 接口
需要将 pId 作为参数传入,在方法中添加一个 pId 参数,用于确认第一级的父节点。
-- 这个示例代码中,buildTree 方法接收两个参数,一个是泛型类型的参数 List,另一个是 pId,用于确认第一级的父节点。在找到所有的根节点后,我们需要对每个根节点调用 buildChildren 方法,递归构建子节点。
-- 以便支持传入的 pId 作为顶级节点
构建到几级
-- 如果再增加一个参数,构建到树的第几层该如何实现?
-- 根据需求,如果增加一个参数来控制构建到树的第几层,可以在 buildChildren 方法中添加一个 level 参数,用于记录当前节点的层数。在递归构建子节点时,如果当前节点的层数小于指定的层数,则继续递归构建子节点,否则停止递归。以下是修改后的 Java 示例代码:
三、使用
1、实现 TreeNode 接口
2、使用
-- pId 可以传入 null,也可以传入需要从哪个节点(X)开始构造的 X 的 id
-- pId 比如可以传入 3、样例中的 “二、噢噢噢噢”的 id=“e6ee51485389495cb923a122be800012”。然后构建出来的,就是“二、噢噢噢噢”的下级树
3、样例
版权声明: 本文为 InfoQ 作者【高端章鱼哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/0ba209b7c9dff134bf2921be0】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论