Package org.aoju.bus.core.toolkit
Class TreeKit
java.lang.Object
org.aoju.bus.core.toolkit.TreeKit
树工具类 提供通用树生成,特点: 1、每个字段可自定义 2、支持排序 树深度配置,自定义转换器等 3、支持额外属性扩展 4、贴心 许多属性,特性都有默认值处理 5、使用简单 可一行代码生成树 6、代码简洁轻量无额外依赖
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription树构建树构建build(List<T> list, E rootId, NodeConfig nodeConfig, NodeParser<T, E> nodeParser) 树构建build(List<T> list, E parentId, NodeParser<T, E> nodeParser) 树构建树构建,按照权重排序static <E> Tree<E> buildSingle(List<TreeNode<E>> list, E parentId) 构建单root节点树buildSingle(List<TreeNode<Integer>> list) 构建单root节点树static <T,E> Tree <E> buildSingle(List<T> list, E rootId, NodeConfig nodeConfig, NodeParser<T, E> nodeParser) 构建单root节点树static <T,E> Tree <E> buildSingle(List<T> list, E parentId, NodeParser<T, E> nodeParser) 构建单root节点树static <E> Tree<E> buildSingle(Map<E, Tree<E>> map, E rootId) 单点树构建,按照权重排序static <E> Tree<E> createEmptyNode(E id) 创建空Tree的节点static <T> Tree<T> 获取ID对应的节点,如果有多个ID相同的节点,只返回第一个。static <T> List<CharSequence> getParentsName(Tree<T> node, boolean includeCurrentNode) 获取所有父节点名称列表
-
Constructor Details
-
TreeKit
public TreeKit()
-
-
Method Details
-
buildSingle
-
build
-
buildSingle
-
build
-
buildSingle
构建单root节点树- Type Parameters:
T- 转换的实体 为数据源里的对象类型E- ID类型- Parameters:
list- 源数据集合parentId- 最顶层父id值 一般为 0 之类nodeParser- 转换器- Returns:
Tree
-
build
树构建- Type Parameters:
T- 转换的实体 为数据源里的对象类型E- ID类型- Parameters:
list- 源数据集合parentId- 最顶层父id值 一般为 0 之类nodeParser- 转换器- Returns:
- the list
-
build
public static <T,E> List<Tree<E>> build(List<T> list, E rootId, NodeConfig nodeConfig, NodeParser<T, E> nodeParser) 树构建- Type Parameters:
T- 转换的实体 为数据源里的对象类型E- ID类型- Parameters:
list- 源数据集合rootId- 最顶层父id值 一般为 0 之类nodeConfig- 配置nodeParser- 转换器- Returns:
- the list
-
buildSingle
public static <T,E> Tree<E> buildSingle(List<T> list, E rootId, NodeConfig nodeConfig, NodeParser<T, E> nodeParser) 构建单root节点树- Type Parameters:
T- 转换的实体 为数据源里的对象类型E- ID类型- Parameters:
list- 源数据集合rootId- 最顶层父id值 一般为 0 之类nodeConfig- 配置nodeParser- 转换器- Returns:
Tree
-
build
-
buildSingle
-
getNode
-
getParentsName
获取所有父节点名称列表比如有个人在研发1部,他上面有研发部,接着上面有技术中心 返回结果就是:[研发一部, 研发中心, 技术中心]
- Type Parameters:
T- 节点ID类型- Parameters:
node- 节点includeCurrentNode- 是否包含当前节点的名称- Returns:
- 所有父节点名称列表,node为null返回空List
-
createEmptyNode
-