Class TreeUtil

java.lang.Object
com.power4j.fist.data.tree.TreeUtil

public class TreeUtil extends Object
Since:
1.0
Author:
CJ (power4j@outlook.com)
  • Constructor Details

    • TreeUtil

      public TreeUtil()
  • Method Details

    • findAncestors

      public <ID, T> Map<ID,T> findAncestors(Map<ID,T> source, Function<? super T,ID> idGetter, Function<? super T,ID> pidGetter)
      在给定的集合中查找根节点
      Type Parameters:
      ID - ID 类型
      T - 对象
      Parameters:
      source - 数据源
      idGetter - ID取值方法
      pidGetter - PID取值方法
      Returns:
      返回根节点MAP
    • fetch

      public <ID, T> void fetch(Collection<T> source, Collection<T> roots, TreeUtil.NodeOp<ID,T> nodeOp)
      填充子级
      Type Parameters:
      ID - ID 类型
      T - 节点类型
      Parameters:
      source - 数据源
      roots - 根节点
      nodeOp - 各种操作函数
    • fetch

      public <ID, T> void fetch(Map<ID,T> source, Map<ID,T> roots, TreeUtil.NodeOp<ID,T> nodeOp)
      填充子级
      Type Parameters:
      ID - ID 类型
      T - 节点类型
      Parameters:
      source - 数据源
      roots - 根节点
      nodeOp - 各种操作函数
    • treeWalk

      public <ID, T> void treeWalk(Collection<? extends T> roots, TreeUtil.AccessOp<ID,T> accessOp, Consumer<? super T> consumer)
      迭代树节点
      Type Parameters:
      ID - ID 类型
      T - 节点类型
      Parameters:
      roots - 根节点
      accessOp - 各种操作函数
      consumer - 节点消费函数
    • flatten

      public <ID, T> List<T> flatten(Collection<T> roots, TreeUtil.AccessOp<ID,T> accessOp)
      树节点转list
      Type Parameters:
      ID - ID 类型
      T - 节点类型
      Parameters:
      roots - 根节点
      accessOp - 各种操作函数
      Returns:
      返回节点MAP