JUtil

net.cscott.jutil
Class SnapshotIterator<E>

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

public class SnapshotIterator<E>
extends UnmodifiableIterator<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.

Version:
$Id: SnapshotIterator.java,v 1.3 2006-10-30 19:58:07 cananian Exp $
Author:
C. Scott Ananian

Constructor Summary
SnapshotIterator(Iterator<E> it)
          Creates a SnapshotIterator from Iterator it.
 
Method Summary
 boolean hasNext()
          Returns true if the iteration has more elements.
 E next()
          Returns the next element in the iteration.
 
Methods inherited from class net.cscott.jutil.UnmodifiableIterator
proxy, remove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SnapshotIterator

public SnapshotIterator(Iterator<E> it)
Creates a SnapshotIterator from Iterator it.

Method Detail

hasNext

public boolean hasNext()
Description copied from class: UnmodifiableIterator
Returns true if the iteration has more elements.

Specified by:
hasNext in interface Iterator<E>
Specified by:
hasNext in class UnmodifiableIterator<E>
Returns:
true if the iterator has more elements.

next

public E next()
Description copied from class: UnmodifiableIterator
Returns the next element in the iteration.

Specified by:
next in interface Iterator<E>
Specified by:
next in class UnmodifiableIterator<E>

JUtil

Copyright (c) 2006 C. Scott Ananian