Class FastutilMapIntVertexGraph<E>

  • Type Parameters:
    E - the graph edge type
    All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Graph<java.lang.Integer,​E>

    public class FastutilMapIntVertexGraph<E>
    extends AbstractBaseGraph<java.lang.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:
    FastutilMapGraph, Serialized Form
    • Constructor Detail

      • FastutilMapIntVertexGraph

        public FastutilMapIntVertexGraph​(java.util.function.Supplier<java.lang.Integer> vertexSupplier,
                                         java.util.function.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:
        java.lang.IllegalArgumentException - if the graph type is not supported by this implementation
      • FastutilMapIntVertexGraph

        public FastutilMapIntVertexGraph​(java.util.function.Supplier<java.lang.Integer> vertexSupplier,
                                         java.util.function.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:
        java.lang.IllegalArgumentException - if the graph type is not supported by this implementation