Constructor and Description |
---|
DirectedGraph() |
DirectedGraph(ToLongFunction<V> hashFn,
BiPredicate<V,V> equalsFn) |
Modifier and Type | Method and Description |
---|---|
DirectedGraph<V,E> |
add(V vertex) |
DirectedGraph<V,E> |
clone() |
E |
edge(V from,
V to) |
Iterable<IEdge<V,E>> |
edges() |
boolean |
equals(Object obj) |
DirectedGraph<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() |
DirectedGraph<V,E> |
linear()
This returns a data structure which is linear, or temporarily mutable.
|
DirectedGraph<V,E> |
link(V from,
V to) |
DirectedGraph<V,E> |
link(V from,
V to,
E edge) |
DirectedGraph<V,E> |
link(V from,
V to,
E edge,
BinaryOperator<E> merge) |
<U> DirectedGraph<V,U> |
mapEdges(Function<IEdge<V,E>,U> f) |
DirectedGraph<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) . |
DirectedGraph<V,E> |
remove(V vertex) |
DirectedGraph<V,E> |
replace(V a,
V b) |
DirectedGraph<V,E> |
replace(V a,
V b,
BinaryOperator<E> merge) |
DirectedGraph<V,E> |
select(ISet<V> vertices) |
String |
toString() |
DirectedGraph<V,E> |
transpose() |
DirectedGraph<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, merge, nth, remove, size, split
iterator, nth, save
forEach, spliterator
public DirectedGraph()
public DirectedGraph(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 DirectedGraph<V,E> link(V from, V to, E edge, BinaryOperator<E> merge)
public DirectedGraph<V,E> unlink(V from, V to)
public DirectedGraph<V,E> add(V vertex)
public DirectedGraph<V,E> remove(V vertex)
public DirectedGraph<V,E> merge(IGraph<V,E> graph, BinaryOperator<E> merge)
public DirectedGraph<V,E> select(ISet<V> vertices)
public DirectedGraph<V,E> replace(V a, V b)
public DirectedGraph<V,E> replace(V a, V b, BinaryOperator<E> merge)
public DirectedGraph<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 DirectedGraph<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.
public boolean isLinear()
public boolean isDirected()
isDirected
in interface IGraph<V,E>
public DirectedGraph<V,E> transpose()
public ToLongFunction<V> vertexHash()
vertexHash
in interface IGraph<V,E>
public BiPredicate<V,V> vertexEquality()
vertexEquality
in interface IGraph<V,E>
public DirectedGraph<V,E> clone()