Package com.elitesland.ystdms.sys.util
Class TreeUtil<T,ID>
java.lang.Object
com.elitesland.ystdms.sys.util.TreeUtil<T,ID>
树形数据工具类.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionbuildTree(List<T> list, Comparator<T> comparator) 构建树形结构(简化版,要求节点实现TreeNode接口)buildTree(List<T> list, Function<T, ID> idGetter, Function<T, ID> parentIdGetter, Function<T, List<T>> childrenGetter, BiConsumer<T, List<T>> childrenSetter, Comparator<T> comparator) 构建树形结构static <T,ID> TreeUtil <T, ID> create()创建TreeUtil实例的工厂方法查找树中的节点flattenTree(List<T> tree, TreeUtil.TraversalMode traversalMode) 将树形结构平铺为列表(简化版,要求节点实现TreeNode接口)将树形结构平铺为列表(默认深度优先)flattenTree(List<T> tree, Function<T, List<T>> childrenGetter, TreeUtil.TraversalMode traversalMode) 将树形结构平铺为列表void对树进行排序
-
Method Details
-
buildTree
public List<T> buildTree(List<T> list, Function<T, ID> idGetter, Function<T, ID> parentIdGetter, Function<T, List<T>> childrenGetter, BiConsumer<T, List<T>> childrenSetter, Comparator<T> comparator) 构建树形结构- Parameters:
list- 平铺的数据列表idGetter- ID获取函数parentIdGetter- 父ID获取函数childrenSetter- 子节点设置函数comparator- 节点排序比较器(可以为null)- Returns:
- 树形结构列表
-
buildTree
构建树形结构(简化版,要求节点实现TreeNode接口)- Parameters:
list- 平铺的数据列表comparator- 节点排序比较器(可以为null)- Returns:
- 树形结构列表
-
flattenTree
public List<T> flattenTree(List<T> tree, Function<T, List<T>> childrenGetter, TreeUtil.TraversalMode traversalMode) 将树形结构平铺为列表- Parameters:
tree- 树形结构列表childrenGetter- 子节点获取函数traversalMode- 遍历模式:DFS(深度优先)或 BFS(广度优先)- Returns:
- 平铺的列表,所有节点的children都为null,且按code+parentCode去重
-
flattenTree
将树形结构平铺为列表(默认深度优先)- Parameters:
tree- 树形结构列表childrenGetter- 子节点获取函数- Returns:
- 平铺的列表
-
flattenTree
将树形结构平铺为列表(简化版,要求节点实现TreeNode接口)- Parameters:
tree- 树形结构列表traversalMode- 遍历模式- Returns:
- 平铺的列表
-
sortTree
对树进行排序- Parameters:
tree- 树形结构childrenGetter- 子节点获取函数comparator- 排序比较器
-
findNode
查找树中的节点- Parameters:
tree- 树形结构childrenGetter- 子节点获取函数predicate- 节点判断条件- Returns:
- 找到的节点,未找到返回null
-
create
创建TreeUtil实例的工厂方法
-