/**
  * Construct a new fast lookup directed specifics.
  *
  * @param abstractBaseGraph the graph for which these specifics are for
  * @param vertexMap map for the storage of vertex edge sets
  * @param edgeSetFactory factory for the creation of vertex edge sets
  */
 public FastLookupDirectedSpecifics(
     AbstractBaseGraph <V, E> abstractBaseGraph, Dictionary <V, DirectedEdgeContainer <V, E> > vertexMap,
     EdgeSetFactory <V, E> edgeSetFactory)
     : base(abstractBaseGraph, vertexMap, edgeSetFactory)
 {
     this.touchingVerticesToEdgeMap = new Dictionary <KeyValuePair <V, V>, ArrayUnenforcedSet <E> >();
 }
 /**
  * Construct a new directed specifics.
  *
  * @param abstractBaseGraph the graph for which these specifics are for
  * @param vertexMap map for the storage of vertex edge sets
  * @param edgeSetFactory factory for the creation of vertex edge sets
  */
 public DirectedSpecifics(
     AbstractBaseGraph <V, E> abstractBaseGraph,
     Dictionary <V, DirectedEdgeContainer <V, E> > vertexMap,
     EdgeSetFactory <V, E> edgeSetFactory)
 {
     this.abstractBaseGraph = abstractBaseGraph;
     this.vertexMapDirected = vertexMap;
     this.edgeSetFactory    = edgeSetFactory;
 }
 /**
  * Construct a new directed specifics.
  *
  * @param abstractBaseGraph the graph for which these specifics are for
  * @param vertexMap map for the storage of vertex edge sets
  */
 public DirectedSpecifics(AbstractBaseGraph <V, E> abstractBaseGraph,
                          Dictionary <V, DirectedEdgeContainer <V, E> > vertexMap)
     : this(abstractBaseGraph, vertexMap, new ArrayUnenforcedSetEdgeSetFactory <V, E>())
 {
 }
 /**
  * Construct a new fast lookup directed specifics.
  *
  * @param abstractBaseGraph the graph for which these specifics are for
  */
 public FastLookupDirectedSpecifics(AbstractBaseGraph <V, E> abstractBaseGraph)
     : this(abstractBaseGraph, new Dictionary <V, DirectedEdgeContainer <V, E> >(), new ArrayUnenforcedSetEdgeSetFactory <V, E>())
 {
 }