N - Node parameter typeV - Value parameter type@Beta public abstract class AbstractValueGraph<N,V> extends Object implements ValueGraph<N,V>
ValueGraph. It is recommended to extend
this class rather than implement ValueGraph directly.
The methods implemented in this class should not be overridden unless the subclass admits a more efficient implementation.
| Constructor and Description |
|---|
AbstractValueGraph() |
| Modifier and Type | Method and Description |
|---|---|
Graph<N> |
asGraph()
Returns a live view of this graph as a
Graph. |
int |
degree(N node)
Returns the count of
node's incident edges, counting self-loops twice (equivalently,
the number of times an edge touches node). |
protected long |
edgeCount()
Returns the number of edges in this graph; used to calculate the size of
edges(). |
Set<EndpointPair<N>> |
edges()
|
Optional<V> |
edgeValue(N nodeU,
N nodeV)
Returns the value of the edge connecting
nodeU to nodeV, if one is present;
otherwise, returns Optional.empty(). |
boolean |
equals(Object obj)
Returns
true iff object is a ValueGraph that has the same elements and
the same structural relationships as those in this graph. |
boolean |
hasEdgeConnecting(N nodeU,
N nodeV)
Returns true if there is an edge directly connecting
nodeU to nodeV. |
int |
hashCode()
Returns the hash code for this graph.
|
int |
inDegree(N node)
Returns the count of
node's incoming edges (equal to predecessors(node).size())
in a directed graph. |
int |
outDegree(N node)
Returns the count of
node's outgoing edges (equal to successors(node).size())
in a directed graph. |
String |
toString()
Returns a string representation of this graph.
|
clone, finalize, getClass, notify, notifyAll, wait, wait, waitadjacentNodes, allowsSelfLoops, degree, edges, edgeValueOrDefault, hasEdgeConnecting, inDegree, isDirected, nodeOrder, nodes, outDegree, predecessors, successorspublic AbstractValueGraph()
public Graph<N> asGraph()
ValueGraphGraph. The resulting Graph will have an
edge connecting node A to node B if this ValueGraph has an edge connecting A to B.asGraph in interface ValueGraph<N,V>public Optional<V> edgeValue(N nodeU, N nodeV)
ValueGraphnodeU to nodeV, if one is present;
otherwise, returns Optional.empty().
In an undirected graph, this is equal to edgeValue(nodeV, nodeU).
edgeValue in interface ValueGraph<N,V>public final boolean equals(@Nullable Object obj)
ValueGraphtrue iff object is a ValueGraph that has the same elements and
the same structural relationships as those in this graph.
Thus, two value graphs A and B are equal if all of the following are true:
directedness.
node sets.
edge sets.
value of a given edge is the same in both A and B.
Graph properties besides directedness do not affect equality.
For example, two graphs may be considered equal even if one allows self-loops and the other
doesn't. Additionally, the order in which nodes or edges are added to the graph, and the order
in which they are iterated over, are irrelevant.
A reference implementation of this is provided by equals(Object).
public final int hashCode()
ValueGraphedges to the associated edge value.
A reference implementation of this is provided by hashCode().
protected long edgeCount()
edges(). This
implementation requires O(|N|) time. Classes extending this one may manually keep track of the
number of edges as the graph is updated, and override this method for better performance.public Set<EndpointPair<N>> edges()
public int degree(N node)
node's incident edges, counting self-loops twice (equivalently,
the number of times an edge touches node).
For directed graphs, this is equal to inDegree(node) + outDegree(node).
For undirected graphs, this is equal to adjacentNodes(node).size() + (1 if node has an incident self-loop, 0 otherwise).
If the count is greater than Integer.MAX_VALUE, returns Integer.MAX_VALUE.
public int inDegree(N node)
node's incoming edges (equal to predecessors(node).size())
in a directed graph. In an undirected graph, returns the degree(Object).
If the count is greater than Integer.MAX_VALUE, returns Integer.MAX_VALUE.
public int outDegree(N node)
node's outgoing edges (equal to successors(node).size())
in a directed graph. In an undirected graph, returns the degree(Object).
If the count is greater than Integer.MAX_VALUE, returns Integer.MAX_VALUE.
public boolean hasEdgeConnecting(N nodeU, N nodeV)
nodeU to nodeV. This is
equivalent to nodes().contains(nodeU) && successors(nodeU).contains(nodeV).
In an undirected graph, this is equal to hasEdgeConnecting(nodeV, nodeU).
Copyright © 2010–2017. All rights reserved.