Class Multigraph<V,E>

Type Parameters:
V - the graph vertex type
E - the graph edge type
All Implemented Interfaces:
Serializable, Cloneable, Graph<V,E>
Direct Known Subclasses:
WeightedMultigraph

public class Multigraph<V,E> extends AbstractBaseGraph<V,E>
A multigraph. A multigraph is a non-simple undirected graph in which no loops are permitted, but multiple (parallel) edges between any two vertices are. If you're unsure about multigraphs, see: http://mathworld.wolfram.com/Multigraph.html.
See Also:
  • Constructor Details

    • Multigraph

      public Multigraph(Class<? extends E> edgeClass)
      Creates a new graph.
      Parameters:
      edgeClass - class on which to base the edge supplier
    • Multigraph

      public Multigraph(Supplier<V> vertexSupplier, Supplier<E> edgeSupplier, boolean weighted)
      Creates a new graph.
      Parameters:
      vertexSupplier - the vertex supplier, can be null
      edgeSupplier - the edge supplier, can be null
      weighted - whether the graph is weighted or not
  • Method Details

    • createBuilder

      public static <V, E> GraphBuilder<V,E,? extends Multigraph<V,E>> createBuilder(Class<? extends E> edgeClass)
      Create a builder for this kind of graph.
      Type Parameters:
      V - the graph vertex type
      E - the graph edge type
      Parameters:
      edgeClass - class on which to base factory for edges
      Returns:
      a builder for this kind of graph
    • createBuilder

      public static <V, E> GraphBuilder<V,E,? extends Multigraph<V,E>> createBuilder(Supplier<E> edgeSupplier)
      Create a builder for this kind of graph.
      Type Parameters:
      V - the graph vertex type
      E - the graph edge type
      Parameters:
      edgeSupplier - the edge supplier of the new graph
      Returns:
      a builder for this kind of graph