Class TreeMaker<ID,N extends Node<ID,N>>

java.lang.Object
com.power4j.fist.data.tree.TreeMaker<ID,N>
Type Parameters:
ID - ID 类型
N - Node 子类

public class TreeMaker<ID,N extends Node<ID,N>> extends Object
Since:
2022.0.3
Author:
CJ (power4j@outlook.com)
  • Method Details

    • use

      public static <ID, N extends Node<ID, N>> TreeMaker<ID,N> use(Collection<N> data)
      构造方法
      Type Parameters:
      ID - ID 类型
      N - Node 子类
      Parameters:
      data - 业务数据
      Returns:
      返回实例
    • useIdx

      public static <ID> TreeMaker<ID,TreeNode<ID>> useIdx(Collection<? extends NodeIdx<ID,?>> nodes)
      构造方法
      Type Parameters:
      ID - ID 类型
      Parameters:
      nodes - 树形节点索引
      Returns:
      返回实例
    • build

      public Optional<N> build(ID id)
      构建树形结构
      Parameters:
      id - 根点ID,必须存在于数据源中,并且不是顶层节点
      Returns:
      返回树形结构,如果数据源不包含根节点数据则返回empty
    • build

      public List<N> build()
      构建树形结构,自动推测根节点
      Returns:
      返回根节点列表
    • build

      public List<N> build(Predicate<N> rootPred)
      构建树形结构
      Parameters:
      rootPred - 根节点断言
      Returns:
      返回根节点列表,如果数据源不包含根节点数据则返回empty
    • makeTree

      protected List<N> makeTree(Function<Map<ID,N>,Map<ID,N>> rootSelect)
      构建树形结构 支持多个根节点
      Parameters:
      rootSelect - 根节选择器
      Returns:
      返回根节点列表,如果数据源不包含根节点数据则返回empty
    • findTopNodes

      protected static <ID, N extends Node<ID, N>> Map<ID,N> findTopNodes(Map<ID,N> input)