Graph.java

net.minecraft.util.Graph

信息

  • 全限定名:net.minecraft.util.Graph
  • 类型:public final class
  • 包:net.minecraft.util
  • 源码路径:src/main/java/net/minecraft/util/Graph.java
  • 起始行号:L8
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

private Graph() @ L9

  • 构造器名:Graph
  • 源码定位:L9
  • 修饰符:private

参数:

说明:

TODO

方法

下面的方法块按源码顺序生成。

public static <T> boolean depthFirstSearch(Map<T,Set<T>> edges, Set<T> discovered, Set<T> currentlyVisiting, Consumer<T> reverseTopologicalOrder, T current) @ L12

  • 方法名:depthFirstSearch
  • 源码定位:L12
  • 返回类型: boolean
  • 修饰符:public static

参数:

  • edges: Map<T,Set>
  • discovered: Set
  • currentlyVisiting: Set
  • reverseTopologicalOrder: Consumer
  • current: T

说明:

TODO

代码

public final class Graph {
    private Graph() {
    }
 
    public static <T> boolean depthFirstSearch(
        Map<T, Set<T>> edges, Set<T> discovered, Set<T> currentlyVisiting, Consumer<T> reverseTopologicalOrder, T current
    ) {
        if (discovered.contains(current)) {
            return false;
        } else if (currentlyVisiting.contains(current)) {
            return true;
        } else {
            currentlyVisiting.add(current);
 
            for (T next : edges.getOrDefault(current, ImmutableSet.of())) {
                if (depthFirstSearch(edges, discovered, currentlyVisiting, reverseTopologicalOrder, next)) {
                    return true;
                }
            }
 
            currentlyVisiting.remove(current);
            discovered.add(current);
            reverseTopologicalOrder.accept(current);
            return false;
        }
    }
}

引用的其他类