net.cscott.jutil
Class FilterIterator<A,B>
java.lang.Object
net.cscott.jutil.UnmodifiableIterator<B>
net.cscott.jutil.FilterIterator<A,B>
- All Implemented Interfaces:
- Iterator<B>
public class FilterIterator<A,B>
- extends UnmodifiableIterator<B>
A FilterIterator
filters and maps a source
Iterator
to generate a new one.
Note that this implementation reads one element ahead, so if the
Filter changes for an object 'o' between the time that is read
(when next() is called, returning the object preceding 'o', and
checking that 'o' satisfies the current Filter) and the time when
hasNext() is called, 'o' will still be returned, regardless of what
Filter.isElement(o) returns. Thus, it is recommended that only
Filters which remain consistent throughout the iteration be used.
- Version:
- $Id: FilterIterator.java,v 1.2 2006-10-30 19:58:05 cananian Exp $
- Author:
- C. Scott Ananian
Method Summary |
boolean |
hasNext()
Returns true if the iteration has more elements. |
B |
next()
Returns the next element in the iteration. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FilterIterator
public FilterIterator(Iterator<A> i,
FilterIterator.Filter<A,B> f)
- Creates a
FilterIterator
.
next
public B next()
- Description copied from class:
UnmodifiableIterator
- Returns the next element in the iteration.
- Specified by:
next
in interface Iterator<B>
- Specified by:
next
in class UnmodifiableIterator<B>
hasNext
public boolean hasNext()
- Description copied from class:
UnmodifiableIterator
- Returns
true
if the iteration has more elements.
- Specified by:
hasNext
in interface Iterator<B>
- Specified by:
hasNext
in class UnmodifiableIterator<B>
- Returns:
true
if the iterator has more elements.
Copyright (c) 2006 C. Scott Ananian