Class FastutilMapGraph<V,​E>

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

    public class FastutilMapGraph<V,​E>
    extends org.jgrapht.graph.AbstractBaseGraph<V,​E>
    A graph implementation using fastutil's map implementations for storage.

    The following example creates a simple undirected weighted graph:

     Graph<String,
         DefaultWeightedEdge> g = new FastutilMapGraph<>(
             SupplierUtil.createStringSupplier(), SupplierUtil.createDefaultWeightedEdgeSupplier(),
             DefaultGraphType.simple().asWeighted());
     

    In case you have integer vertices, consider using the FastutilMapIntVertexGraph.

    Author:
    Dimitrios Michail
    See Also:
    FastutilMapIntVertexGraph, Serialized Form
    • Field Summary

      • Fields inherited from interface org.jgrapht.Graph

        DEFAULT_EDGE_WEIGHT
    • Constructor Summary

      Constructors 
      Constructor Description
      FastutilMapGraph​(java.util.function.Supplier<V> vertexSupplier, java.util.function.Supplier<E> edgeSupplier, org.jgrapht.GraphType type)
      Construct a new graph.
      FastutilMapGraph​(java.util.function.Supplier<V> vertexSupplier, java.util.function.Supplier<E> edgeSupplier, org.jgrapht.GraphType type, boolean fastLookups)
      Construct a new graph.
    • Method Summary

      • Methods inherited from class org.jgrapht.graph.AbstractBaseGraph

        addEdge, addEdge, addVertex, addVertex, clone, containsEdge, containsVertex, degreeOf, edgeSet, edgesOf, getAllEdges, getEdge, getEdgeSource, getEdgeSupplier, getEdgeTarget, getEdgeWeight, getType, getVertexSupplier, incomingEdgesOf, inDegreeOf, outDegreeOf, outgoingEdgesOf, removeEdge, removeEdge, removeVertex, setEdgeSupplier, setEdgeWeight, setVertexSupplier, vertexSet
      • Methods inherited from class org.jgrapht.graph.AbstractGraph

        assertVertexExist, containsEdge, equals, hashCode, removeAllEdges, removeAllEdges, removeAllEdges, removeAllVertices, toString, toStringFromSets
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.jgrapht.Graph

        containsEdge, removeAllEdges, removeAllEdges, removeAllVertices, setEdgeWeight
    • Constructor Detail

      • FastutilMapGraph

        public FastutilMapGraph​(java.util.function.Supplier<V> vertexSupplier,
                                java.util.function.Supplier<E> edgeSupplier,
                                org.jgrapht.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
      • FastutilMapGraph

        public FastutilMapGraph​(java.util.function.Supplier<V> vertexSupplier,
                                java.util.function.Supplier<E> edgeSupplier,
                                org.jgrapht.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