Class TreeNodeUtil

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

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

    • TreeNodeUtil

      public TreeNodeUtil()
  • Method Details

    • treeWalk

      public <ID, N extends Node<ID, N>> void treeWalk(Collection<? extends N> roots, Consumer<? super N> consumer)
      迭代树节点
      Type Parameters:
      ID - ID 类型
      N - Node 子类
      Parameters:
      roots - 根节点
      consumer - 节点消费函数
    • sortNodes

      public static <ID, N extends Node<ID, N>, U extends Comparable<? super U>> void sortNodes(List<N> list, Function<? super N,? extends U> keyExtractor)
      根据属性排序
      Type Parameters:
      ID - ID 类型
      N - Node 子类
      Parameters:
      list - 根节点
      keyExtractor - 属性取值函数
    • flatten

      public <ID, N extends Node<ID, N>> List<N> flatten(List<N> roots)
      树节点转list
      Type Parameters:
      ID - ID 类型
      N - Node 子类
      Parameters:
      roots - 根节点
      Returns:
      返回节点MAP
    • fetch

      public <ID, N extends Node<ID, N>> void fetch(Map<ID,N> source, Map<ID,N> roots)
      填充子级
      Type Parameters:
      ID - ID 类型
      N - Node 子类
      Parameters:
      source - 数据源
      roots - 根节点
    • convert

      public <ID, N extends Node<ID, N>, U> void convert(Collection<? extends N> src, TreeNodeUtil.ConvertOp<N,U> op, Collection<? super U> dist)
      转换为其他类型,无接口依赖
      Type Parameters:
      ID - ID 类型
      N - 原类型
      U - 目标类型
      Parameters:
      src - 数据源
      op - 转换所需各种函数
      dist - 用于保存结果
    • convertToList

      public <ID, N extends Node<ID, N>, U> List<U> convertToList(Collection<? extends N> src, TreeNodeUtil.ConvertOp<N,U> op)
      转换为其他类型,无接口依赖
      Type Parameters:
      ID - ID 类型
      N - 原类型
      U - 目标类型
      Parameters:
      src - 数据源
      op - 转换所需各种函数
      Returns:
      返回转换后的列表