
com.annimon.stream.LazyIterator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stream Show documentation
Show all versions of stream Show documentation
Stream API from Java 8 rewrited on iterators for Java 7 and below.
package com.annimon.stream;
import java.util.Iterator;
class LazyIterator implements Iterator {
private final Iterable extends T> iterable;
private Iterator extends T> iterator;
public LazyIterator(Iterable extends T> iterable) {
this.iterable = iterable;
}
private void ensureIterator() {
if (iterator != null) {
return;
}
// Lazily creates Iterator object.
iterator = iterable.iterator();
}
@Override
public boolean hasNext() {
ensureIterator();
return iterator.hasNext();
}
@Override
public T next() {
ensureIterator();
return iterator.next();
}
@Override
public void remove() {
ensureIterator();
iterator.remove();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy