Class ExtendedIterator<T>
java.lang.Object
org.apache.commons.collections4.iterators.ExtendedIterator<T>
- Type Parameters:
T
- The type of object returned from the iterator.
- All Implemented Interfaces:
Iterator<T>
,IteratorOperations<T>
Extends Iterator functionality to include operations commonly found on streams (e.g. filtering, concatenating, mapping). It also provides convenience methods
for common operations.
- Since:
- 4.5.0-M3
-
Method Summary
Modifier and TypeMethodDescription<X extends T>
ExtendedIterator<T> Chains theother
iterator to the end of this one.static <T> ExtendedIterator
<T> Create an ExtendedIterator returning the elements ofit
.static <T> ExtendedIterator
<T> Creates an ExtendedIterator wrapped round aStream
.static <T> ExtendedIterator
<T> createNoRemove
(Iterator<T> it) Creates an ExtendedIterator wrapped roundit
, which does not permit.remove()
even ifit
does.static ExtendedIterator
<?> Creates an empty Extended iterator.Filter this iterator using a predicate.static <T> ExtendedIterator
<T> Flattens an iterator of iterators into an Iterator over the next level values.void
forEachRemaining
(Consumer<? super T> action) boolean
hasNext()
<U> ExtendedIterator
<U> Map the elements of the iterator to a now type.next()
void
remove()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.commons.collections4.iterators.IteratorOperations
addTo, removeNext, toCollection, toList, toSet
-
Method Details
-
create
Create an ExtendedIterator returning the elements ofit
. Ifit
is itself an ExtendedIterator, return that; otherwise wrapit
.- Type Parameters:
T
- The type of object returned from the iterator.- Parameters:
it
- The iterator to wrap.- Returns:
- An Extended iterator wrapping
it
-
create
Creates an ExtendedIterator wrapped round aStream
. The extended iterator does not permit.remove()
.The stream should not be used directly. The effect of doing so is undefined.
- Type Parameters:
T
- The type of object returned from the iterator.- Parameters:
stream
- the Stream to create an iterator from.- Returns:
- an Extended iterator on the
stream
iterator.
-
createNoRemove
Creates an ExtendedIterator wrapped roundit
, which does not permit.remove()
even ifit
does.- Type Parameters:
T
- The type of object returned from the iterator.- Parameters:
it
- The Iterator to wrap.- Returns:
- an Extended iterator on
it
- Throws:
UnsupportedOperationException
- if remove() is called on the resulting iterator.
-
emptyIterator
Creates an empty Extended iterator.- Returns:
- An empty Extended iterator.
-
flatten
Flattens an iterator of iterators into an Iterator over the next level values. Similar to list splicing in lisp.- Type Parameters:
T
- The type of object returned from the iterator.- Parameters:
iterators
- An iterator of iterators.- Returns:
- An iterator over the logical concatenation of the inner iterators.
-
andThen
Chains theother
iterator to the end of this one.- Type Parameters:
X
- The type of object returned from the other iterator.- Parameters:
other
- the other iterator to extend this iterator with.- Returns:
- A new iterator returning the contents of
this
iterator followed by the contents ofother
iterator.
-
filter
Filter this iterator using a predicate. Only items for which the predicate returnstrue
will be included in the result.- Parameters:
predicate
- The predicate to filter the items with.- Returns:
- An iterator filtered by the predicate.
-
forEachRemaining
- Specified by:
forEachRemaining
in interfaceIterator<T>
-
hasNext
-
map
Map the elements of the iterator to a now type.- Type Parameters:
U
- The object type to return.- Parameters:
function
- The function to map elements of<T>
to type<U>
.- Returns:
- An Extended iterator that returns a
<U>
for very<T>
in the original iterator.
-
next
-
remove
-