public class HierarchyUtil extends Object
通用层级结构扫描器工具类。
用于根据广度优先或深度优先或搜索遍历如树或图等特定数据结构的层级,如:文件夹层级、类层级、方法或注解层级等。
使用时指定遍历的起始节点,以及遍历算法,并配合HierarchyIterator即可完成遍历中的业务逻辑处理。
比如,我们可以使用其来访问树结构:
// 构建一个树形结构
Node root = Tree.build();
// 从树结构中通过深度优先查找某个节点
Node target = HierarchyUtil.traverseByDepthFirst(
root, HierarchyIteratorUtil.find(Node::getChildren, node -> Objects.equals(node.getId(), "target") ? node : null)
);
// 从树结构中通过广度优先获取其所有的子节点
List<Node> nodes = HierarchyUtil.traverseByBreadthFirst(
root, HierarchyIteratorUtil.collect(Node::getChildren)
);
HierarchyIterator| 构造器和说明 |
|---|
HierarchyUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <H,R> R |
traverseByBreadthFirst(H hierarchy,
HierarchyIterator<H,R> hierarchyIterator)
按广度优先遍历指定包括
hierarchy本身在内层级结构 |
static <H,R> R |
traverseByBreadthFirst(H hierarchy,
Predicate<? super H> filter,
HierarchyIterator<H,R> hierarchyIterator)
按广度优先遍历指定包括
hierarchy本身在内层级结构 |
static <H,R> R |
traverseByDepthFirst(H hierarchy,
HierarchyIterator<H,R> hierarchyIterator)
按深度优先遍历指定包括
hierarchy本身在内层级结构 |
static <H,R> R |
traverseByDepthFirst(H hierarchy,
Predicate<? super H> filter,
HierarchyIterator<H,R> hierarchyIterator)
按深度优先遍历指定包括
hierarchy本身在内层级结构 |
public static <H,R> R traverseByBreadthFirst(H hierarchy,
Predicate<? super H> filter,
HierarchyIterator<H,R> hierarchyIterator)
hierarchy本身在内层级结构H - 层级结构类型R - 迭代器结果类型hierarchy - 层级结构filter - 过滤器,校验不通过的层级结构不会被查找hierarchyIterator - 遍历过程中的迭代器, 若迭代器返回空, 则不会继续遍历下一层级public static <H,R> R traverseByBreadthFirst(H hierarchy,
HierarchyIterator<H,R> hierarchyIterator)
hierarchy本身在内层级结构H - 层级结构类型R - 迭代器结果类型hierarchy - 层级结构hierarchyIterator - 遍历过程中的迭代器, 若迭代器返回空, 则不会继续遍历下一层级public static <H,R> R traverseByDepthFirst(H hierarchy,
Predicate<? super H> filter,
HierarchyIterator<H,R> hierarchyIterator)
hierarchy本身在内层级结构H - 层级结构类型R - 迭代器结果类型hierarchy - 层级结构filter - 过滤器,校验不通过的层级结构不会被查找hierarchyIterator - 遍历过程中的迭代器, 若迭代器返回空, 则不会继续遍历下一层级public static <H,R> R traverseByDepthFirst(H hierarchy,
HierarchyIterator<H,R> hierarchyIterator)
hierarchy本身在内层级结构H - 层级结构类型R - 迭代器结果类型hierarchy - 层级结构hierarchyIterator - 遍历过程中的迭代器, 若迭代器返回空, 则不会继续遍历下一层级Copyright © 2023. All rights reserved.