protected static class DirectedAcyclicGraph.VisitedArrayListImpl extends Object implements DirectedAcyclicGraph.VisitedStrategy, DirectedAcyclicGraph.VisitedStrategyFactory
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).
Constructor and Description |
---|
VisitedArrayListImpl()
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
clearVisited(int index)
Clear the visited state of the given topological index.
|
boolean |
getVisited(int index)
Get if the given topological index has been visited.
|
DirectedAcyclicGraph.VisitedStrategy |
getVisitedStrategy(DirectedAcyclicGraph.Region affectedRegion)
Create a new instance of
DirectedAcyclicGraph.VisitedStrategy . |
void |
setVisited(int index)
Mark the given topological index as visited.
|
public DirectedAcyclicGraph.VisitedStrategy getVisitedStrategy(DirectedAcyclicGraph.Region affectedRegion)
DirectedAcyclicGraph.VisitedStrategyFactory
DirectedAcyclicGraph.VisitedStrategy
.getVisitedStrategy
in interface DirectedAcyclicGraph.VisitedStrategyFactory
affectedRegion
- the affected regionDirectedAcyclicGraph.VisitedStrategy
for the affected regionpublic void setVisited(int index)
DirectedAcyclicGraph.VisitedStrategy
setVisited
in interface DirectedAcyclicGraph.VisitedStrategy
index
- the topological indexpublic boolean getVisited(int index)
DirectedAcyclicGraph.VisitedStrategy
getVisited
in interface DirectedAcyclicGraph.VisitedStrategy
index
- the topological indexpublic void clearVisited(int index) throws UnsupportedOperationException
DirectedAcyclicGraph.VisitedStrategy
clearVisited
in interface DirectedAcyclicGraph.VisitedStrategy
index
- the indexUnsupportedOperationException
- 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.Copyright © 2017. All rights reserved.