Class SnapshotIterator<E>

java.lang.Object
net.cscott.jutil.SnapshotIterator<E>
All Implemented Interfaces:
Iterator<E>
Direct Known Subclasses:
ReverseIterator

public class SnapshotIterator<E> extends Object implements Iterator<E>
A SnapshotIterator takes a "snapshot" of an iterator, and iterates over that snapshot. So subsequent modifications to the collection underlying the original iterator do not modify the snapshot or the SnapshotIterator. This is very useful for modifying collections via a visitor class: we want to make sure that every element of the original collection is visited, while still permitting the visitor to make changes to the collection as it operates.
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>