类 TreeUtil

java.lang.Object
org.elsfs.tool.core.tree.TreeUtil

public class TreeUtil extends Object
树工具类
作者:
zeng
  • 构造器详细资料

    • TreeUtil

      public TreeUtil()
  • 方法详细资料

    • build

      public static List<Tree<Integer>> build(List<TreeNode<Integer>> list)
      树构建
      参数:
      list - 源数据集合
      返回:
      List
    • build

      public static <E> List<Tree<E>> build(List<TreeNode<E>> list, E parentId)
      树构建
      类型参数:
      E - ID类型
      参数:
      list - 源数据集合
      parentId - 最顶层父id值 一般为 0 之类
      返回:
      List
    • build

      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 - 转换器
      返回:
      List
    • build

      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 - 转换器
      返回:
      List
    • build

      public static <E> List<Tree<E>> build(Map<E,Tree<E>> map, E rootId)
      树构建,按照权重排序
      类型参数:
      E - ID类型
      参数:
      map - 源数据Map
      rootId - 最顶层父id值 一般为 0 之类
      返回:
      List
    • buildSingle

      public static Tree<Integer> buildSingle(List<TreeNode<Integer>> list)
      构建单root节点树
      参数:
      list - 源数据集合
      返回:
      Tree
    • buildSingle

      public static <E> Tree<E> buildSingle(List<TreeNode<E>> list, E parentId)
      构建单root节点树
      它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。
      类型参数:
      E - ID类型
      参数:
      list - 源数据集合
      parentId - 最顶层父id值 一般为 0 之类
      返回:
      Tree
    • buildSingle

      public static <T, E> Tree<E> buildSingle(List<T> list, E parentId, NodeParser<T,E> nodeParser)
      构建单root节点树
      它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。
      类型参数:
      T - 转换的实体 为数据源里的对象类型
      E - ID类型
      参数:
      list - 源数据集合
      parentId - 最顶层父id值 一般为 0 之类
      nodeParser - 转换器
      返回:
      Tree
    • buildSingle

      public static <T, E> Tree<E> buildSingle(List<T> list, E rootId, TreeNodeConfig treeNodeConfig, NodeParser<T,E> nodeParser)
      构建单root节点树
      它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。
      类型参数:
      T - 转换的实体 为数据源里的对象类型
      E - ID类型
      参数:
      list - 源数据集合
      rootId - 最顶层父id值 一般为 0 之类
      treeNodeConfig - 配置
      nodeParser - 转换器
      返回:
      Tree
    • buildSingle

      public static <E> Tree<E> buildSingle(Map<E,Tree<E>> map, E rootId)
      单点树构建,按照权重排序
      它会生成一个以指定ID为ID的空的节点,然后逐级增加子节点。
      类型参数:
      E - ID类型
      参数:
      map - 源数据Map
      rootId - 根节点id值 一般为 0 之类
      返回:
      Tree
    • getNode

      public static <T> Tree<T> getNode(Tree<T> node, T id)
      获取ID对应的节点,如果有多个ID相同的节点,只返回第一个。
      此方法只查找此节点及子节点,采用递归深度优先遍历。
      类型参数:
      T - ID类型
      参数:
      node - 节点
      id - ID
      返回:
      节点
    • getParentsName

      public static <T> List<CharSequence> getParentsName(Tree<T> node, boolean includeCurrentNode)
      获取所有父节点名称列表

      比如有个人在研发1部,他上面有研发部,接着上面有技术中心
      返回结果就是:[研发一部, 研发中心, 技术中心]

      类型参数:
      T - 节点ID类型
      参数:
      node - 节点
      includeCurrentNode - 是否包含当前节点的名称
      返回:
      所有父节点名称列表,node为null返回空List
    • createEmptyNode

      public static <E> Tree<E> createEmptyNode(E id)
      创建空Tree的节点
      类型参数:
      E - 节点ID类型
      参数:
      id - 节点ID
      返回:
      Tree