Constructor and Description |
---|
Graph() |
Graph(ToLongFunction<V> hashFn,
BiPredicate<V,V> equalsFn) |
Modifier and Type | Method and Description |
---|---|
Graph<V,E> |
add(V vertex) |
Graph<V,E> |
clone() |
E |
edge(V from,
V to) |
Iterable<IEdge<V,E>> |
edges() |
boolean |
equals(Object obj) |
Graph<V,E> |
forked()
This returns a data structure which is forked, which is equivalent to Clojure's persistent
data structures, also sometimes called functional or immutable.
|
int |
hashCode() |
Set<V> |
in(V vertex)
In an undirected graph, this is equivalent to
IGraph.out(Object) . |
boolean |
isDirected() |
boolean |
isLinear() |
Graph<V,E> |
linear()
This returns a data structure which is linear, or temporarily mutable.
|
Graph<V,E> |
link(V from,
V to,
E edge,
BinaryOperator<E> merge) |
<U> Graph<V,U> |
mapEdges(Function<IEdge<V,E>,U> f) |
Graph<V,E> |
merge(IGraph<V,E> graph,
BinaryOperator<E> merge) |
Set<V> |
out(V vertex)
In an undirected graph, this is equivalent to
IGraph.in(Object) . |
Graph<V,E> |
remove(V vertex) |
Graph<V,E> |
select(ISet<V> vertices) |
String |
toString() |
Graph<V,E> |
transpose() |
Graph<V,E> |
unlink(V from,
V to) |
BiPredicate<V,V> |
vertexEquality() |
ToLongFunction<V> |
vertexHash() |
Set<V> |
vertices() |
finalize, getClass, notify, notifyAll, wait, wait, wait
add, indexOf, iterator, link, link, merge, nth, remove, replace, replace, size, split
iterator, nth, save
forEach, spliterator
public Graph()
public Graph(ToLongFunction<V> hashFn, BiPredicate<V,V> equalsFn)
public Set<V> in(V vertex)
IGraph
IGraph.out(Object)
.public Set<V> out(V vertex)
IGraph
IGraph.in(Object)
.public boolean isLinear()
public boolean isDirected()
isDirected
in interface IGraph<V,E>
public ToLongFunction<V> vertexHash()
vertexHash
in interface IGraph<V,E>
public BiPredicate<V,V> vertexEquality()
vertexEquality
in interface IGraph<V,E>
public Graph<V,E> forked()
ICollection
If only a single function or scope uses the data structure, it can be left as a linear data structure, which can have significant performance benefits.
If the data structure is already forked, it will simply return itself.
public Graph<V,E> linear()
ICollection
If ICollection.forked()
is called on a linear collection, all references to that linear collection
should be discarded.
If the data structure is already linear, it will simply return itself.