public class TreeUtil extends Object
Constructor and Description |
---|
TreeUtil() |
Modifier and Type | Method and Description |
---|---|
static <T,E> List<E> |
build(List<E> nodes,
T rootId,
Function<E,T> idFunc,
Function<E,T> parentIdFunc,
BiConsumer<E,List<E>> setChildFunc)
函数式构建树状结构(无需继承Tree类)
|
static <T,E> List<Tree<E>> |
build(List<T> list,
E parentId,
NodeParser<T,E> nodeParser)
树构建
|
static <T,E> List<Tree<E>> |
build(List<T> list,
E rootId,
TreeNodeConfig treeNodeConfig,
NodeParser<T,E> nodeParser)
树构建
|
static <E> List<Tree<E>> |
build(List<TreeNode<E>> list,
E parentId)
树构建
|
static List<Tree<Integer>> |
build(List<TreeNode<Integer>> list)
树构建
|
static <E> List<Tree<E>> |
build(Map<E,Tree<E>> map,
E rootId)
树构建,按照权重排序
|
static <T,E> Tree<E> |
buildSingle(List<T> list,
E parentId,
NodeParser<T,E> nodeParser)
构建单root节点树
它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。 |
static <T,E> Tree<E> |
buildSingle(List<T> list,
E rootId,
TreeNodeConfig treeNodeConfig,
NodeParser<T,E> nodeParser)
构建单root节点树
它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。 |
static <E> Tree<E> |
buildSingle(List<TreeNode<E>> list,
E parentId)
构建单root节点树
它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。 |
static Tree<Integer> |
buildSingle(List<TreeNode<Integer>> list)
构建单root节点树
|
static <E> Tree<E> |
buildSingle(Map<E,Tree<E>> map,
E rootId)
单点树构建,按照权重排序
它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。 |
static <E> Tree<E> |
createEmptyNode(E id)
创建空Tree的节点
|
static <T> Tree<T> |
getNode(Tree<T> node,
T id)
获取ID对应的节点,如果有多个ID相同的节点,只返回第一个。
|
static <T> List<T> |
getParentsId(Tree<T> node,
boolean includeCurrentNode)
获取所有父节点ID列表
比如有个人在研发1部,他上面有研发部,接着上面有技术中心
返回结果就是:[研发部, 技术中心] |
static <T> List<CharSequence> |
getParentsName(Tree<T> node,
boolean includeCurrentNode)
获取所有父节点名称列表
比如有个人在研发1部,他上面有研发部,接着上面有技术中心
返回结果就是:[研发一部, 研发中心, 技术中心] |
public static Tree<Integer> buildSingle(List<TreeNode<Integer>> list)
list
- 源数据集合Tree
public static List<Tree<Integer>> build(List<TreeNode<Integer>> list)
list
- 源数据集合public static <E> Tree<E> buildSingle(List<TreeNode<E>> list, E parentId)
E
- ID类型list
- 源数据集合parentId
- 最顶层父id值 一般为 0 之类Tree
public static <E> List<Tree<E>> build(List<TreeNode<E>> list, E parentId)
E
- ID类型list
- 源数据集合parentId
- 最顶层父id值 一般为 0 之类public static <T,E> Tree<E> buildSingle(List<T> list, E parentId, NodeParser<T,E> nodeParser)
T
- 转换的实体 为数据源里的对象类型E
- ID类型list
- 源数据集合parentId
- 最顶层父id值 一般为 0 之类nodeParser
- 转换器Tree
public static <T,E> List<Tree<E>> build(List<T> list, E parentId, NodeParser<T,E> nodeParser)
T
- 转换的实体 为数据源里的对象类型E
- ID类型list
- 源数据集合parentId
- 最顶层父id值 一般为 0 之类nodeParser
- 转换器public static <T,E> List<Tree<E>> build(List<T> list, E rootId, TreeNodeConfig treeNodeConfig, NodeParser<T,E> nodeParser)
T
- 转换的实体 为数据源里的对象类型E
- ID类型list
- 源数据集合rootId
- 最顶层父id值 一般为 0 之类treeNodeConfig
- 配置nodeParser
- 转换器public static <T,E> Tree<E> buildSingle(List<T> list, E rootId, TreeNodeConfig treeNodeConfig, NodeParser<T,E> nodeParser)
T
- 转换的实体 为数据源里的对象类型E
- ID类型list
- 源数据集合rootId
- 最顶层父id值 一般为 0 之类treeNodeConfig
- 配置nodeParser
- 转换器Tree
public static <E> List<Tree<E>> build(Map<E,Tree<E>> map, E rootId)
E
- ID类型map
- 源数据MaprootId
- 最顶层父id值 一般为 0 之类public static <E> Tree<E> buildSingle(Map<E,Tree<E>> map, E rootId)
E
- ID类型map
- 源数据MaprootId
- 根节点id值 一般为 0 之类Tree
public static <T> Tree<T> getNode(Tree<T> node, T id)
T
- ID类型node
- 节点id
- IDpublic static <T> List<CharSequence> getParentsName(Tree<T> node, boolean includeCurrentNode)
比如有个人在研发1部,他上面有研发部,接着上面有技术中心
返回结果就是:[研发一部, 研发中心, 技术中心]
T
- 节点ID类型node
- 节点includeCurrentNode
- 是否包含当前节点的名称public static <T> List<T> getParentsId(Tree<T> node, boolean includeCurrentNode)
比如有个人在研发1部,他上面有研发部,接着上面有技术中心
返回结果就是:[研发部, 技术中心]
T
- 节点ID类型node
- 节点includeCurrentNode
- 是否包含当前节点的名称public static <E> Tree<E> createEmptyNode(E id)
E
- 节点ID类型id
- 节点IDTree
public static <T,E> List<E> build(List<E> nodes, T rootId, Function<E,T> idFunc, Function<E,T> parentIdFunc, BiConsumer<E,List<E>> setChildFunc)
T
- 节点ID类型E
- 节点类型nodes
- 需要构建树集合rootId
- 根节点IDidFunc
- 获取节点ID函数parentIdFunc
- 获取节点父ID函数setChildFunc
- 设置孩子集合函数Copyright © 2024. All rights reserved.