Interface MutableValueGraph<N,V>

Type Parameters:
N - Node parameter type
V - Value parameter type
All Superinterfaces:
Graph<N>, ValueGraph<N,V>

@Beta public interface MutableValueGraph<N,V> extends ValueGraph<N,V>
A subinterface of ValueGraph which adds mutation methods. When mutation is not required, users should prefer the ValueGraph interface.
Since:
20.0
  • Method Details

    • addNode

      boolean addNode(N node)
      Adds node if it is not already present.

      Nodes must be unique, just as Map keys must be. They must also be non-null.

      Returns:
      true if the graph was modified as a result of this call
    • putEdgeValue

      V putEdgeValue(N nodeU, N nodeV, V value)
      Adds an edge connecting nodeU to nodeV if one is not already present; associate that edge with value. In an undirected graph, the edge will also connect nodeV to nodeU.

      Values do not have to be unique. However, values must be non-null.

      Behavior if nodeU and nodeV are not already present in this graph is implementation-dependent. Suggested behaviors include (a) silently adding nodeU and nodeV to the graph (this is the behavior of the default implementations) or (b) throwing IllegalArgumentException.

      Returns:
      the value previously associated with the edge connecting nodeU to nodeV, or null if there was no such edge.
      Throws:
      IllegalArgumentException - if the introduction of the edge would violate Graph.allowsSelfLoops()
    • removeNode

      boolean removeNode(Object node)
      Removes node if it is present; all edges incident to node will also be removed.
      Returns:
      true if the graph was modified as a result of this call
    • removeEdge

      V removeEdge(Object nodeU, Object nodeV)
      Removes the edge connecting nodeU to nodeV, if it is present.
      Returns:
      the value previously associated with the edge connecting nodeU to nodeV, or null if there was no such edge.