N - Node parameter typeV - Value parameter typepublic abstract class AbstractValueGraph<N,V> extends AbstractBaseGraph<N> 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. |
java.util.Optional<V> |
edgeValue(EndpointPair<N> endpoints)
Returns the value of the edge that connects
endpoints (in the order, if any, specified
by endpoints), if one is present; otherwise, returns Optional.empty(). |
java.util.Optional<V> |
edgeValue(N nodeU,
N nodeV)
Returns the value of the edge that connects
nodeU to nodeV (in the order, if
any, specified by endpoints), if one is present; otherwise, returns Optional.empty(). |
private static <N,V> java.util.Map<EndpointPair<N>,V> |
edgeValueMap(ValueGraph<N,V> graph) |
boolean |
equals(java.lang.Object obj)
Returns
true iff object is a ValueGraph that has the same elements and
the same structural relationships as those in this graph. |
int |
hashCode()
Returns the hash code for this graph.
|
java.lang.String |
toString()
Returns a string representation of this graph.
|
degree, edgeCount, edges, hasEdgeConnecting, hasEdgeConnecting, incidentEdgeOrder, incidentEdges, inDegree, isOrderingCompatible, outDegree, validateEndpointsclone, finalize, getClass, notify, notifyAll, wait, wait, waitadjacentNodes, allowsSelfLoops, degree, edges, edgeValueOrDefault, edgeValueOrDefault, hasEdgeConnecting, hasEdgeConnecting, incidentEdgeOrder, incidentEdges, inDegree, isDirected, nodeOrder, nodes, outDegree, predecessors, successorspublic 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 java.util.Optional<V> edgeValue(N nodeU, N nodeV)
ValueGraphnodeU to nodeV (in the order, if
any, specified by endpoints), if one is present; otherwise, returns Optional.empty().edgeValue in interface ValueGraph<N,V>public java.util.Optional<V> edgeValue(EndpointPair<N> endpoints)
ValueGraphendpoints (in the order, if any, specified
by endpoints), if one is present; otherwise, returns Optional.empty().
If this graph is directed, the endpoints must be ordered.
edgeValue in interface ValueGraph<N,V>public final boolean equals(@CheckForNull
java.lang.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).
equals in interface ValueGraph<N,V>equals in class java.lang.Objectpublic final int hashCode()
ValueGraphedges to the associated edge value.
A reference implementation of this is provided by hashCode().
hashCode in interface ValueGraph<N,V>hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Objectprivate static <N,V> java.util.Map<EndpointPair<N>,V> edgeValueMap(ValueGraph<N,V> graph)