java.lang.Object
org.jgrapht.graph.DirectedAcyclicGraph.VisitedArrayListImpl
- All Implemented Interfaces:
java.io.Serializable,DirectedAcyclicGraph.VisitedStrategy,DirectedAcyclicGraph.VisitedStrategyFactory
- Enclosing class:
- DirectedAcyclicGraph<V,E>
protected static class DirectedAcyclicGraph.VisitedArrayListImpl extends java.lang.Object implements DirectedAcyclicGraph.VisitedStrategy, DirectedAcyclicGraph.VisitedStrategyFactory
A visited strategy using an
ArrayList.
This implementation seems to offer the best performance in most cases. It grows the internal ArrayList as needed to be as large as |AR|, so it will be more memory intensive than the HashSet implementation, and unlike the Array implementation, it will hold on to that memory (it expands, but never contracts).
- Author:
- Peter Giles
- See Also:
- Serialized Form
-
Constructor Summary
Constructors Constructor Description VisitedArrayListImpl()Constructor -
Method Summary
Modifier and Type Method Description voidclearVisited(int index)Clear the visited state of the given topological index.booleangetVisited(int index)Get if the given topological index has been visited.DirectedAcyclicGraph.VisitedStrategygetVisitedStrategy(DirectedAcyclicGraph.Region affectedRegion)Create a new instance ofDirectedAcyclicGraph.VisitedStrategy.voidsetVisited(int index)Mark the given topological index as visited.
-
Constructor Details
-
VisitedArrayListImpl
public VisitedArrayListImpl()Constructor
-
-
Method Details
-
getVisitedStrategy
public DirectedAcyclicGraph.VisitedStrategy getVisitedStrategy(DirectedAcyclicGraph.Region affectedRegion)Description copied from interface:DirectedAcyclicGraph.VisitedStrategyFactoryCreate a new instance ofDirectedAcyclicGraph.VisitedStrategy.- Specified by:
getVisitedStrategyin interfaceDirectedAcyclicGraph.VisitedStrategyFactory- Parameters:
affectedRegion- the affected region- Returns:
- a new instance of
DirectedAcyclicGraph.VisitedStrategyfor the affected region
-
setVisited
public void setVisited(int index)Description copied from interface:DirectedAcyclicGraph.VisitedStrategyMark the given topological index as visited.- Specified by:
setVisitedin interfaceDirectedAcyclicGraph.VisitedStrategy- Parameters:
index- the topological index
-
getVisited
public boolean getVisited(int index)Description copied from interface:DirectedAcyclicGraph.VisitedStrategyGet if the given topological index has been visited.- Specified by:
getVisitedin interfaceDirectedAcyclicGraph.VisitedStrategy- Parameters:
index- the topological index- Returns:
- true if the given topological index has been visited, false otherwise
-
clearVisited
public void clearVisited(int index) throws java.lang.UnsupportedOperationExceptionDescription copied from interface:DirectedAcyclicGraph.VisitedStrategyClear the visited state of the given topological index.- Specified by:
clearVisitedin interfaceDirectedAcyclicGraph.VisitedStrategy- Parameters:
index- the index- Throws:
java.lang.UnsupportedOperationException- if the implementation doesn't support (or doesn't need) clearance. For example, if the factory creates a new instance every time, it is a waste of cycles to reset the state after the search of the Affected Region is done, so an UnsupportedOperationException *should* be thrown.
-