V
- the graph vertex typepublic class MutableDoubleValueGraphAdapter<V> extends MutableValueGraphAdapter<V,Double>
MutableValueGraph
specialized with double values.
The adapter uses class EndpointPair
to represent edges. Changes in the adapter such as
adding or removing vertices and edges are reflected in the underlying value graph.
Each edge in MutableValueGraph
is associated with a double value which is mapped to the
edge weight in the resulting Graph
. Thus, the graph is weighted and calling methods
Graph.getEdgeWeight(Object)
and setEdgeWeight(EndpointPair, double)
will get and set
the value of an edge.
See the example below on how to create such an adapter:
MutableValueGraph<String, Double> mutableValueGraph = ValueGraphBuilder.directed().allowsSelfLoops(true).build(); mutableValueGraph.addNode("v1"); mutableValueGraph.addNode("v2"); mutableValueGraph.putEdgeValue("v1", "v2", 3.0); Graph<String, EndpointPair<String>> graph = new MutableDoubleValueGraphAdapter<>(mutableValueGraph); System.out.println(graph.getEdgeWeight(EndpointPair.ordered("v1", "v2")); // outputs 3.0 graph.setEdgeWeight(EndpointPair.ordered("v1", "v2"), 7.0); System.out.println(graph.getEdgeWeight(EndpointPair.ordered("v1", "v2")); // outputs 7.0
defaultValue
edgeSupplier, LOOPS_NOT_ALLOWED, unmodifiableEdgeSet, unmodifiableVertexSet, valueConverter, valueGraph, vertexSupplier
DEFAULT_EDGE_WEIGHT
Constructor and Description |
---|
MutableDoubleValueGraphAdapter(com.google.common.graph.MutableValueGraph<V,Double> valueGraph)
Create a new adapter.
|
MutableDoubleValueGraphAdapter(com.google.common.graph.MutableValueGraph<V,Double> valueGraph,
Supplier<V> vertexSupplier,
Supplier<com.google.common.graph.EndpointPair<V>> edgeSupplier)
Create a new adapter.
|
Modifier and Type | Method and Description |
---|---|
void |
setEdgeWeight(com.google.common.graph.EndpointPair<V> e,
double weight)
Assigns a weight to an edge.
|
addEdge, addEdge, addVertex, addVertex, clone, removeEdge, removeEdge, removeVertex
containsEdge, containsVertex, degreeOf, edgeSet, edgesOf, getAllEdges, getEdge, getEdgeSource, getEdgeSupplier, getEdgeTarget, getEdgeWeight, getType, getVertexSupplier, incomingEdgesOf, inDegreeOf, outDegreeOf, outgoingEdgesOf, setEdgeSupplier, setVertexSupplier, vertexSet
assertVertexExist, containsEdge, equals, hashCode, removeAllEdges, removeAllEdges, removeAllEdges, removeAllVertices, toString, toStringFromSets
finalize, getClass, notify, notifyAll, wait, wait, wait
containsEdge, containsEdge, containsVertex, degreeOf, edgeSet, edgesOf, getAllEdges, getEdge, getEdgeSource, getEdgeSupplier, getEdgeTarget, getEdgeWeight, getType, getVertexSupplier, incomingEdgesOf, inDegreeOf, outDegreeOf, outgoingEdgesOf, removeAllEdges, removeAllEdges, removeAllVertices, setEdgeWeight, vertexSet
public MutableDoubleValueGraphAdapter(com.google.common.graph.MutableValueGraph<V,Double> valueGraph)
valueGraph
- the value graphpublic MutableDoubleValueGraphAdapter(com.google.common.graph.MutableValueGraph<V,Double> valueGraph, Supplier<V> vertexSupplier, Supplier<com.google.common.graph.EndpointPair<V>> edgeSupplier)
valueGraph
- the value graphvertexSupplier
- the vertex supplieredgeSupplier
- the edge supplierpublic void setEdgeWeight(com.google.common.graph.EndpointPair<V> e, double weight)
MutableValueGraphAdapter
UnsupportedOperationException
since the adapter works
one-way from values to weights. Adjusting the weights can be done by adjusting the values in
the underlying ValueGraph
which will automatically be propagated using the provided
converter.setEdgeWeight
in interface Graph<V,com.google.common.graph.EndpointPair<V>>
setEdgeWeight
in class MutableValueGraphAdapter<V,Double>
e
- edge on which to set weightweight
- new weight for edgeCopyright © 2019. All rights reserved.