Graphs constructed using this strategy require the least amount of memory, at the expense of slow
edge retrievals. Methods which depend on edge retrievals, e.g. getEdge(V u, V v), containsEdge(V
u, V v), addEdge(V u, V v), etc may be relatively slow when the average degree of a vertex is
high (dense graphs). For a fast implementation, use
FastutilFastLookupGSS.