Class FastutilMapIntVertexGraph<E>

java.lang.Object
org.jgrapht.graph.AbstractGraph<V,E>
org.jgrapht.graph.AbstractBaseGraph<Integer,E>
org.jgrapht.opt.graph.fastutil.FastutilMapIntVertexGraph<E>
Type Parameters:
E - the graph edge type
All Implemented Interfaces:
Serializable, Cloneable, Graph<Integer,E>

public class FastutilMapIntVertexGraph<E> extends AbstractBaseGraph<Integer,E>
A graph implementation using fastutil's map implementations for storage specialized for integer vertices. Edges can be of any object type.

The following example creates a simple undirected weighted graph:

 Graph<Integer,
     DefaultWeightedEdge> g = new FastutilMapIntVertexGraph<>(
         SupplierUtil.createIntegerSupplier(), SupplierUtil.createDefaultWeightedEdgeSupplier(),
         DefaultGraphType.simple().asWeighted());
 
Author:
Dimitrios Michail
See Also:
  • Constructor Details

    • FastutilMapIntVertexGraph

      public FastutilMapIntVertexGraph(Supplier<Integer> vertexSupplier, Supplier<E> edgeSupplier, GraphType type, boolean fastLookups)
      Construct a new graph.
      Parameters:
      vertexSupplier - the vertex supplier, can be null
      edgeSupplier - the edge supplier, can be null
      type - the graph type
      fastLookups - whether to index vertex pairs to allow (expected) constant time edge lookups (by vertex endpoints)
      Throws:
      IllegalArgumentException - if the graph type is not supported by this implementation
    • FastutilMapIntVertexGraph

      public FastutilMapIntVertexGraph(Supplier<Integer> vertexSupplier, Supplier<E> edgeSupplier, GraphType type)
      Construct a new graph.

      By default we index vertex pairs to allow (expected) constant time edge lookups.

      Parameters:
      vertexSupplier - the vertex supplier, can be null
      edgeSupplier - the edge supplier, can be null
      type - the graph type
      Throws:
      IllegalArgumentException - if the graph type is not supported by this implementation