Class IteratorIterable<E>
- java.lang.Object
-
- org.apache.commons.collections4.iterators.IteratorIterable<E>
-
- All Implemented Interfaces:
java.lang.Iterable<E>
public class IteratorIterable<E> extends java.lang.Object implements java.lang.Iterable<E>
Adapter to make anIterator
instance appear to be anIterable
instance. The iterable can be constructed in one of two variants: single use, multiple use.In the single use iterable case, the iterable is only usable for one iterative operation over the source iterator. Subsequent iterative operations use the same, exhausted source iterator. To create a single use iterable, construct a new
IteratorIterable
using aIterator
that is NOT aResettableIterator
iterator:Iterator<Integer> iterator = // some non-resettable iterator Iterable<Integer> iterable = new IteratorIterable<Integer>(iterator);
In the multiple use iterable case, the iterable is usable for any number of iterative operations over the source iterator. Of special note, even though the iterable supports multiple iterations, it does not support concurrent iterations. To implicitly create a multiple use iterable, construct a new
IteratorIterable
using aResettableIterator
iterator:Integer[] array = {Integer.valueOf(1),Integer.valueOf(2),Integer.valueOf(3)}; Iterator<Integer> iterator = IteratorUtils.arrayIterator(array); // a resettable iterator Iterable<Integer> iterable = new IteratorIterable<Integer>(iterator);
A multiple use iterable can also be explicitly constructed using any
Iterator
and specifyingtrue
for themultipleUse
flag:Iterator<Integer> iterator = // some non-resettable iterator Iterable<Integer> iterable = new IteratorIterable<Integer>(iterator, true);
- Since:
- 4.0
-
-
Constructor Summary
Constructors Constructor Description IteratorIterable(java.util.Iterator<? extends E> iterator)
Constructs a newIteratorIterable
that will use the given iterator.IteratorIterable(java.util.Iterator<? extends E> iterator, boolean multipleUse)
Constructs a newIteratorIterable
that will use the given iterator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Iterator<E>
iterator()
Gets the iterator wrapped by this iterable.
-
-
-
Constructor Detail
-
IteratorIterable
public IteratorIterable(java.util.Iterator<? extends E> iterator)
Constructs a newIteratorIterable
that will use the given iterator.- Parameters:
iterator
- the iterator to use.
-
IteratorIterable
public IteratorIterable(java.util.Iterator<? extends E> iterator, boolean multipleUse)
Constructs a newIteratorIterable
that will use the given iterator.- Parameters:
iterator
- the iterator to use.multipleUse
-true
if the new iterable can be used in multiple iterations
-
-