Package org.jgrapht.experimental.dag
Class DirectedAcyclicGraph.VisitedHashSetImpl
- java.lang.Object
-
- org.jgrapht.experimental.dag.DirectedAcyclicGraph.VisitedHashSetImpl
-
- All Implemented Interfaces:
java.io.Serializable
,DirectedAcyclicGraph.Visited
,DirectedAcyclicGraph.VisitedFactory
- Enclosing class:
- DirectedAcyclicGraph<V,E>
public static class DirectedAcyclicGraph.VisitedHashSetImpl extends java.lang.Object implements DirectedAcyclicGraph.Visited, DirectedAcyclicGraph.VisitedFactory
This implementation doesn't seem to perform as well, though I can imagine circumstances where it should shine (lots and lots of vertices). It also should have the lowest memory footprint as it only uses storage for indices that have been visited.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static long
serialVersionUID
private java.util.Set<java.lang.Integer>
visited
-
Constructor Summary
Constructors Constructor Description VisitedHashSetImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearVisited(int index)
Clear the visited state of the given topological indexDirectedAcyclicGraph.Visited
getInstance(DirectedAcyclicGraph.Region affectedRegion)
Create a new instance ofDirectedAcyclicGraph.Visited
.boolean
getVisited(int index)
Has the given topological index been visited?void
setVisited(int index)
Mark the given topological index as visited
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
visited
private final java.util.Set<java.lang.Integer> visited
-
-
Method Detail
-
getInstance
public DirectedAcyclicGraph.Visited getInstance(DirectedAcyclicGraph.Region affectedRegion)
Description copied from interface:DirectedAcyclicGraph.VisitedFactory
Create a new instance ofDirectedAcyclicGraph.Visited
.- Specified by:
getInstance
in interfaceDirectedAcyclicGraph.VisitedFactory
- Parameters:
affectedRegion
- the affected region- Returns:
- a new instance of
DirectedAcyclicGraph.Visited
for the affected region
-
setVisited
public void setVisited(int index)
Description copied from interface:DirectedAcyclicGraph.Visited
Mark the given topological index as visited- Specified by:
setVisited
in interfaceDirectedAcyclicGraph.Visited
- Parameters:
index
- the topological index
-
getVisited
public boolean getVisited(int index)
Description copied from interface:DirectedAcyclicGraph.Visited
Has the given topological index been visited?- Specified by:
getVisited
in interfaceDirectedAcyclicGraph.Visited
- Parameters:
index
- the topological index- Returns:
- true if the given topological index been visited, false otherwise
-
clearVisited
public void clearVisited(int index) throws java.lang.UnsupportedOperationException
Description copied from interface:DirectedAcyclicGraph.Visited
Clear the visited state of the given topological index- Specified by:
clearVisited
in interfaceDirectedAcyclicGraph.Visited
- Parameters:
index
- the index- Throws:
java.lang.UnsupportedOperationException
- if the implementation doesn't support (or doesn't need) clearance. For example, if the factory vends a new instance every time, it is a waste of cycles to clear the state after the search of the Affected Region is done, so an UnsupportedOperationException *should* be thrown.
-
-