Iterator instance appear to be an
Iterable 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 a Iterator
that is NOT a ResettableIterator 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 a ResettableIterator 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 specifying true for the
multipleUse flag:
Iterator<Integer> iterator = // some non-resettable iterator Iterable<Integer> iterable = new IteratorIterable<Integer>(iterator, true);
| Modifier and Type | Field and Description |
|---|---|
| private final Iterator | iterator
the iterator being adapted into an iterable. |
| private final Iterator | typeSafeIterator
the iterator parameterized as the |
| Access | Constructor and Description |
|---|---|
| public | IteratorIterable(final Iterator<? extends E>
the iterator to use. iterator)Constructs a new |
| public | IteratorIterable(final Iterator<? extends E>
the iterator to use. iterator, final boolean true if the new iterable can be used in multiple iterationsConstructs a new |
| Modifier and Type | Method and Description |
|---|---|
| private static <E> Iterator | createTypesafeIterator(final Iterator<? extends E> iterator)
Factory method to create an |
| public Iterator | Returns: the iteratorImplements java. |
| iterator | back to summary |
|---|---|
| private final Iterator<? extends E> iterator the iterator being adapted into an iterable. | |
| typeSafeIterator | back to summary |
|---|---|
| private final Iterator<E> typeSafeIterator the iterator parameterized as the | |
| IteratorIterable | back to summary |
|---|---|
| public IteratorIterable(final Iterator<? extends E> iterator) Constructs a new
| |
| IteratorIterable | back to summary |
|---|---|
| public IteratorIterable(final Iterator<? extends E> iterator, final boolean multipleUse) Constructs a new
| |
| createTypesafeIterator | back to summary |
|---|---|
| private static <E> Iterator Factory method to create an | |
| iterator | back to summary |
|---|---|
| public Iterator Implements java. Gets the iterator wrapped by this iterable. | |