com.google.common.graph.Network.isDirected()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(9.1k)|赞(0)|评价(0)|浏览(131)

本文整理了Java中com.google.common.graph.Network.isDirected()方法的一些代码示例,展示了Network.isDirected()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Network.isDirected()方法的具体详情如下:
包路径:com.google.common.graph.Network
类名称:Network
方法名:isDirected

Network.isDirected介绍

[英]Returns true if the edges in this network are directed. Directed edges connect a EndpointPair#source() to a EndpointPair#target(), while undirected edges connect a pair of nodes to each other.
[中]如果网络中的边是有向的,则返回true。有向边将端点对#源()连接到端点对#目标(),而无向边将一对节点彼此连接。

代码示例

代码示例来源:origin: google/guava

@Override
public boolean isDirected() {
 return network.isDirected();
}

代码示例来源:origin: google/guava

@Override
public boolean isDirected() {
 return delegate().isDirected();
}

代码示例来源:origin: google/guava

/**
 * Returns a view of {@code network} with the direction (if any) of every edge reversed. All other
 * properties remain intact, and further updates to {@code network} will be reflected in the view.
 */
public static <N, E> Network<N, E> transpose(Network<N, E> network) {
 if (!network.isDirected()) {
  return network; // the transpose of an undirected network is an identical network
 }
 if (network instanceof TransposedNetwork) {
  return ((TransposedNetwork<N, E>) network).network;
 }
 return new TransposedNetwork<>(network);
}

代码示例来源:origin: google/j2objc

/**
 * Returns a view of {@code network} with the direction (if any) of every edge reversed. All other
 * properties remain intact, and further updates to {@code network} will be reflected in the view.
 */
public static <N, E> Network<N, E> transpose(Network<N, E> network) {
 if (!network.isDirected()) {
  return network; // the transpose of an undirected network is an identical network
 }
 if (network instanceof TransposedNetwork) {
  return ((TransposedNetwork<N, E>) network).network;
 }
 return new TransposedNetwork<>(network);
}

代码示例来源:origin: google/j2objc

@Override
public boolean isDirected() {
 return delegate().isDirected();
}

代码示例来源:origin: google/guava

/** Returns an {@link EndpointPair} representing the endpoints of an edge in {@code network}. */
static <N> EndpointPair<N> of(Network<?, ?> network, N nodeU, N nodeV) {
 return network.isDirected() ? ordered(nodeU, nodeV) : unordered(nodeU, nodeV);
}

代码示例来源:origin: wildfly/wildfly

/**
 * Returns a view of {@code network} with the direction (if any) of every edge reversed. All other
 * properties remain intact, and further updates to {@code network} will be reflected in the view.
 */
public static <N, E> Network<N, E> transpose(Network<N, E> network) {
 if (!network.isDirected()) {
  return network; // the transpose of an undirected network is an identical network
 }
 if (network instanceof TransposedNetwork) {
  return ((TransposedNetwork<N, E>) network).network;
 }
 return new TransposedNetwork<>(network);
}

代码示例来源:origin: wildfly/wildfly

@Override
public boolean isDirected() {
 return delegate().isDirected();
}

代码示例来源:origin: google/j2objc

/** Returns an {@link EndpointPair} representing the endpoints of an edge in {@code network}. */
static <N> EndpointPair<N> of(Network<?, ?> network, N nodeU, N nodeV) {
 return network.isDirected() ? ordered(nodeU, nodeV) : unordered(nodeU, nodeV);
}

代码示例来源:origin: google/guava

@Override
public final boolean equals(@Nullable Object obj) {
 if (obj == this) {
  return true;
 }
 if (!(obj instanceof Network)) {
  return false;
 }
 Network<?, ?> other = (Network<?, ?>) obj;
 return isDirected() == other.isDirected()
   && nodes().equals(other.nodes())
   && edgeIncidentNodesMap(this).equals(edgeIncidentNodesMap(other));
}

代码示例来源:origin: wildfly/wildfly

/** Returns an {@link EndpointPair} representing the endpoints of an edge in {@code network}. */
static <N> EndpointPair<N> of(Network<?, ?> network, N nodeU, N nodeV) {
 return network.isDirected() ? ordered(nodeU, nodeV) : unordered(nodeU, nodeV);
}

代码示例来源:origin: google/guava

/**
 * Returns true if {@code network} has at least one cycle. A cycle is defined as a non-empty
 * subset of edges in a graph arranged to form a path (a sequence of adjacent outgoing edges)
 * starting and ending with the same node.
 *
 * <p>This method will detect any non-empty cycle, including self-loops (a cycle of length 1).
 */
public static boolean hasCycle(Network<?, ?> network) {
 // In a directed graph, parallel edges cannot introduce a cycle in an acyclic graph.
 // However, in an undirected graph, any parallel edge induces a cycle in the graph.
 if (!network.isDirected()
   && network.allowsParallelEdges()
   && network.edges().size() > network.asGraph().edges().size()) {
  return true;
 }
 return hasCycle(network.asGraph());
}

代码示例来源:origin: google/j2objc

@Override
public final boolean equals(@NullableDecl Object obj) {
 if (obj == this) {
  return true;
 }
 if (!(obj instanceof Network)) {
  return false;
 }
 Network<?, ?> other = (Network<?, ?>) obj;
 return isDirected() == other.isDirected()
   && nodes().equals(other.nodes())
   && edgeIncidentNodesMap(this).equals(edgeIncidentNodesMap(other));
}

代码示例来源:origin: google/j2objc

/**
 * Returns true if {@code network} has at least one cycle. A cycle is defined as a non-empty
 * subset of edges in a graph arranged to form a path (a sequence of adjacent outgoing edges)
 * starting and ending with the same node.
 *
 * <p>This method will detect any non-empty cycle, including self-loops (a cycle of length 1).
 */
public static boolean hasCycle(Network<?, ?> network) {
 // In a directed graph, parallel edges cannot introduce a cycle in an acyclic graph.
 // However, in an undirected graph, any parallel edge induces a cycle in the graph.
 if (!network.isDirected()
   && network.allowsParallelEdges()
   && network.edges().size() > network.asGraph().edges().size()) {
  return true;
 }
 return hasCycle(network.asGraph());
}

代码示例来源:origin: wildfly/wildfly

@Override
public final boolean equals(@NullableDecl Object obj) {
 if (obj == this) {
  return true;
 }
 if (!(obj instanceof Network)) {
  return false;
 }
 Network<?, ?> other = (Network<?, ?>) obj;
 return isDirected() == other.isDirected()
   && nodes().equals(other.nodes())
   && edgeIncidentNodesMap(this).equals(edgeIncidentNodesMap(other));
}

代码示例来源:origin: google/guava

/**
 * Returns a {@link NetworkBuilder} initialized with all properties queryable from {@code
 * network}.
 *
 * <p>The "queryable" properties are those that are exposed through the {@link Network} interface,
 * such as {@link Network#isDirected()}. Other properties, such as {@link
 * #expectedNodeCount(int)}, are not set in the new builder.
 */
public static <N, E> NetworkBuilder<N, E> from(Network<N, E> network) {
 return new NetworkBuilder<N, E>(network.isDirected())
   .allowsParallelEdges(network.allowsParallelEdges())
   .allowsSelfLoops(network.allowsSelfLoops())
   .nodeOrder(network.nodeOrder())
   .edgeOrder(network.edgeOrder());
}

代码示例来源:origin: google/guava

private static <N, E> NetworkConnections<N, E> connectionsOf(Network<N, E> network, N node) {
 if (network.isDirected()) {
  Map<E, N> inEdgeMap = Maps.asMap(network.inEdges(node), sourceNodeFn(network));
  Map<E, N> outEdgeMap = Maps.asMap(network.outEdges(node), targetNodeFn(network));
  int selfLoopCount = network.edgesConnecting(node, node).size();
  return network.allowsParallelEdges()
    ? DirectedMultiNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount)
    : DirectedNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount);
 } else {
  Map<E, N> incidentEdgeMap =
    Maps.asMap(network.incidentEdges(node), adjacentNodeFn(network, node));
  return network.allowsParallelEdges()
    ? UndirectedMultiNetworkConnections.ofImmutable(incidentEdgeMap)
    : UndirectedNetworkConnections.ofImmutable(incidentEdgeMap);
 }
}

代码示例来源:origin: google/j2objc

/**
 * Returns a {@link NetworkBuilder} initialized with all properties queryable from {@code
 * network}.
 *
 * <p>The "queryable" properties are those that are exposed through the {@link Network} interface,
 * such as {@link Network#isDirected()}. Other properties, such as {@link
 * #expectedNodeCount(int)}, are not set in the new builder.
 */
public static <N, E> NetworkBuilder<N, E> from(Network<N, E> network) {
 return new NetworkBuilder<N, E>(network.isDirected())
   .allowsParallelEdges(network.allowsParallelEdges())
   .allowsSelfLoops(network.allowsSelfLoops())
   .nodeOrder(network.nodeOrder())
   .edgeOrder(network.edgeOrder());
}

代码示例来源:origin: wildfly/wildfly

/**
 * Returns a {@link NetworkBuilder} initialized with all properties queryable from {@code
 * network}.
 *
 * <p>The "queryable" properties are those that are exposed through the {@link Network} interface,
 * such as {@link Network#isDirected()}. Other properties, such as {@link
 * #expectedNodeCount(int)}, are not set in the new builder.
 */
public static <N, E> NetworkBuilder<N, E> from(Network<N, E> network) {
 return new NetworkBuilder<N, E>(network.isDirected())
   .allowsParallelEdges(network.allowsParallelEdges())
   .allowsSelfLoops(network.allowsSelfLoops())
   .nodeOrder(network.nodeOrder())
   .edgeOrder(network.edgeOrder());
}

代码示例来源:origin: google/j2objc

private static <N, E> NetworkConnections<N, E> connectionsOf(Network<N, E> network, N node) {
 if (network.isDirected()) {
  Map<E, N> inEdgeMap = Maps.asMap(network.inEdges(node), sourceNodeFn(network));
  Map<E, N> outEdgeMap = Maps.asMap(network.outEdges(node), targetNodeFn(network));
  int selfLoopCount = network.edgesConnecting(node, node).size();
  return network.allowsParallelEdges()
    ? DirectedMultiNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount)
    : DirectedNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount);
 } else {
  Map<E, N> incidentEdgeMap =
    Maps.asMap(network.incidentEdges(node), adjacentNodeFn(network, node));
  return network.allowsParallelEdges()
    ? UndirectedMultiNetworkConnections.ofImmutable(incidentEdgeMap)
    : UndirectedNetworkConnections.ofImmutable(incidentEdgeMap);
 }
}

相关文章