Class TreeUtils

java.lang.Object
com.codeupsoft.base.common.utils.TreeUtils

public class TreeUtils extends Object
树结构工具类. 提供构建树、遍历树、查找节点等常用操作方法.
Author:
Liu,Dongdong
  • Constructor Details

    • TreeUtils

      public TreeUtils()
  • Method Details

    • listToTree

      public static <T> List<T> listToTree(List<T> list, Function<T,Object> idGetter, Function<T,Object> parentIdGetter, TreeUtils.TreeChildrenSetter<T> childrenSetter, Object rootParentId)
      将列表结构转换为树形结构.
      Type Parameters:
      T - 节点类型
      Parameters:
      list - 所有节点列表
      idGetter - 获取节点ID的函数
      parentIdGetter - 获取节点父ID的函数
      childrenSetter - 设置节点子节点列表的函数
      rootParentId - 根节点的父ID值
      Returns:
      树形结构列表
    • findNode

      public static <T> T findNode(List<T> treeList, Predicate<T> condition, Function<T,List<T>> childrenGetter)
      在树结构中查找满足条件的节点.
      Type Parameters:
      T - 节点类型
      Parameters:
      treeList - 树节点列表
      condition - 查找条件
      childrenGetter - 获取子节点列表的函数
      Returns:
      满足条件的节点,未找到返回null
    • traverseTree

      public static <T> void traverseTree(List<T> treeList, TreeUtils.TreeVisitor<T> visitor, Function<T,List<T>> childrenGetter)
      遍历树结构并对每个节点执行操作.
      Type Parameters:
      T - 节点类型
      Parameters:
      treeList - 树节点列表
      visitor - 节点访问器
      childrenGetter - 获取子节点列表的函数
    • filterTree

      public static <T> List<T> filterTree(List<T> treeList, Predicate<T> condition, Function<T,List<T>> childrenGetter)
      过滤树结构,返回满足条件的节点组成的新树.
      Type Parameters:
      T - 节点类型
      Parameters:
      treeList - 树节点列表
      condition - 过滤条件
      childrenGetter - 获取子节点列表的函数
      Returns:
      过滤后的新树