E - the type of elements returned by this enumerable.public interface Enumerable<E> extends Iterable<E>
Iterable with high composability that returns an
Enumerator instance for its Iterator.Enumerator,
Iterable,
Iterator| Modifier and Type | Method and Description |
|---|---|
default Enumerable<E> |
append(E... elements)
Appends the given elements to the end of the current
Enumerable. |
default <T> Enumerable<T> |
as(Class<T> clazz)
Converts the current enumerable to another type.
|
default Enumeration<E> |
asEnumeration()
Returns an
Enumeration enumerating the elements of the current
Enumerable. |
default <T> Enumerable<T> |
asFiltered(Class<T> clazz)
Converts and filters the current enumerable to another type.
|
default Spliterator<E> |
asSpliterator()
Returns a
Spliterator iterating the elements of the current
Enumerable. |
default Stream<E> |
asStream()
Returns a
Stream streaming the elements of the current
Enumerable. |
default Enumerable<E> |
asTolerant(Consumer<? super Exception> handler)
Returns a tolerant
Enumerable with 0 retries enumerating
over the elements of the current Enumerable. |
default Enumerable<E> |
asTolerant(Consumer<? super Exception> handler,
int retries)
Returns a tolerant
Enumerable enumerating over the elements
of the current Enumerable. |
default CachedEnumerable<E> |
cached()
Returns a
CachedEnumerable that caches the enumerated elements. |
default CachedEnumerable<E> |
cached(long limit,
Consumer<CachedEnumerable<E>> onLimitCallback)
Returns a
CachedEnumerable that caches the enumerated elements
up to a given limit. |
static <E> Enumerable<E> |
choiceOf(Supplier<IntSupplier> indexSupplier,
Iterable<E> first,
Iterable<? extends E> second,
Iterable<? extends E>... rest)
Returns an
Enumerable that chooses its elements from other
Iterable instances. |
static <E> Enumerable<E> |
choiceOf(Supplier<IntSupplier> indexSupplier,
Supplier<IntUnaryOperator> altIndexSupplier,
Iterable<E> first,
Iterable<? extends E> second,
Iterable<? extends E>... rest)
Returns an
Enumerable that chooses its elements from other
Iterable instances. |
default Enumerable<E> |
concat(Iterable<? extends E> elements)
Concatenates the given
Iterable to the current
Enumerable. |
default Enumerable<E> |
concatOn(E... elements)
Concatenates the given elements to the current
Enumerable. |
default Enumerable<E> |
distinct()
Returns an
Enumerable enumerating over the distinct elements
of the current Enumerable. |
default <T> boolean |
elementsEqual(Iterable<T> elements)
Checks whether the current
Enumerable matches element-wise
the given Iterable. |
static <E> Enumerable<E> |
empty()
Returns an
Enumerable with no elements. |
boolean |
enumerating()
Returns whether
enumerator() has been called at least once. |
Enumerator<E> |
enumerator()
Returns a new
Enumerator instance that enumerates over the
current Enumerable. |
default Enumerable<E> |
filter(Predicate<? super E> predicate)
Returns an
Enumerable enumerating over the current elements
satisfying the given Predicate. |
default <R> Enumerable<R> |
flatMap(Function<? super E,? extends Iterable<? extends R>> mapper)
Returns an
Enumerable enumerating over the iterables produced
by applying the given mapper over the elements of the current
Enumerable. |
static <E> Enumerable<E> |
iterate(E seed,
UnaryOperator<E> f)
Returns an
Enumerable enumerating over the elements generated by
repeatedly applying the given unary operator on the given seed. |
default Iterator<E> |
iterator()
Returns a new
Iterator instance that can traverse the current
Enumerable. |
default Enumerable<E> |
limit(long maxSize)
Returns an
Enumerable enumerating over the current elements up to
the given limit. |
default Enumerable<E> |
limitWhile(Predicate<? super E> predicate)
Returns an
Enumerable enumerating over the current elements while
the given predicate holds true. |
default <R> Enumerable<R> |
map(BiFunction<? super E,? super Long,? extends R> mapper)
Returns an
Enumerable enumerating over the current indexed
elements mapped by the given mapper. |
default <R> Enumerable<R> |
map(Function<? super E,? extends R> mapper)
Returns an
Enumerable enumerating over the current elements
mapped by the given mapper. |
static <E> OnceEnumerable<E> |
of(Enumeration<E> source)
Returns an
OnceEnumerable enumerating over the given
Enumeration. |
static <E> Enumerable<E> |
of(Iterable<E> source)
Returns an
Enumerable enumerating over the given Iterable
source. |
static <E> OnceEnumerable<E> |
of(Iterator<E> source)
Returns an
OnceEnumerable enumerating over the given
Iterator source. |
static <E> OnceEnumerable<E> |
of(Spliterator<E> source)
Returns an
OnceEnumerable enumerating over the given
Spliterator. |
static <E> OnceEnumerable<E> |
of(Stream<E> source)
Returns an
OnceEnumerable enumerating over the given
Stream. |
static <E> OnceEnumerable<E> |
of(Supplier<Optional<E>> source)
Returns an
OnceEnumerable enumerating over a sequence of
elements supplied lazily. |
static <E> LateBindingEnumerable<E> |
ofLateBinding(Class<E> clazz)
Returns a
LateBindingEnumerable of elements of the given type. |
static <E> OnceEnumerable<E> |
ofLazyEnumeration(Supplier<? extends Enumeration<E>> source)
Returns an
OnceEnumerable enumerating over an
Enumeration supplied lazily. |
static <E> Enumerable<E> |
ofLazyIterable(Supplier<? extends Iterable<E>> source)
Returns an
Enumerable enumerating over an Iterable
supplied lazily. |
static <E> OnceEnumerable<E> |
ofLazyIterator(Supplier<? extends Iterator<E>> source)
Returns an
OnceEnumerable enumerating over an Iterator
supplied lazily. |
static <E> OnceEnumerable<E> |
ofLazySpliterator(Supplier<? extends Spliterator<E>> source)
Returns an
OnceEnumerable enumerating over a Spliterator
supplied lazily. |
static <E> OnceEnumerable<E> |
ofLazyStream(Supplier<? extends Stream<E>> source)
Returns an
OnceEnumerable enumerating over a
Stream supplied lazily. |
static <E> Enumerable<E> |
on(E... elements)
Returns an
Enumerable enumerating over the given elements. |
boolean |
onceOnly()
Returns whether the enumerable may generate only one iterator or not.
|
static boolean |
onceOnly(Iterable<?> iterable)
Returns whether the given
iterable may generated only
one iterator or not. |
default Enumerable<E> |
peek(Consumer<? super E> action)
Returns an
Enumerable enumerating the current elements while
feeding them to the given Consumer. |
default Enumerable<E> |
prepend(Iterable<? extends E> elements)
Prepends the current
Enumerable by the given Iterable. |
default Enumerable<E> |
prependOn(E... elements)
Prepends the current
Enumerable by the given elements. |
static <E> Enumerable<E> |
range(E startInclusive,
E endExclusive,
UnaryOperator<E> succ,
Comparator<? super E> cmp)
Returns an
Enumerable enumerating over a range of elements. |
static <E> Enumerable<E> |
rangeClosed(E startInclusive,
E endInclusive,
UnaryOperator<E> succ,
Comparator<? super E> cmp)
Returns an
Enumerable enumerating over a range of elements. |
static Enumerable<Integer> |
rangeInt(int startInclusive,
int endExclusive)
Returns an
Enumerable enumerating over a range of integers. |
static Enumerable<Integer> |
rangeIntClosed(int startInclusive,
int endInclusive)
Returns an
Enumerable enumerating over a range of integers. |
static Enumerable<Long> |
rangeLong(long startInclusive,
long endExclusive)
Returns an
Enumerable enumerating over a range of long integers. |
static Enumerable<Long> |
rangeLongClosed(long startInclusive,
long endInclusive)
Returns an
Enumerable enumerating over a range of long integers. |
static <E> Enumerable<E> |
repeat(E element,
long count)
Returns an
Enumerable repeating the given element the given
number of time. |
default Enumerable<E> |
repeatAll(int count)
Returns an
Enumerable repeating all the current elements the
given number of times. |
default Enumerable<E> |
repeatEach(long count)
Returns an
Enumerable repeating each current element the given
number of times. |
default Enumerable<E> |
reverse()
Returns an
Enumerable enumerating over the current elements in
reversed order. |
default Enumerable<E> |
skip(long n)
Returns an
Enumerable that skips the given number of current
elements. |
default Enumerable<E> |
skipWhile(Predicate<? super E> predicate)
Returns an
Enumerable that skips while the given condition
holds true. |
default Enumerable<E> |
sorted()
Returns an
Enumerable enumerating over the current elements
in sorted order. |
default Enumerable<E> |
sorted(Comparator<? super E> comparator)
Returns an
Enumerable enumerating over the current elements
in sorted order according to the given comparator. |
default Enumerable<E> |
take(long n)
Returns an
Enumerable enumerating over the current elements up to
the given limit. |
default Enumerable<E> |
takeWhile(Predicate<? super E> predicate)
Returns an
Enumerable enumerating over the current elements while
the given predicate holds true. |
default Enumerable<E> |
union(Iterable<E> others)
Returns an
Enumerable enumerating over the current elements and
over the given Iterable while avoiding duplicates. |
default Enumerable<E> |
unionOn(E... others)
Returns an
Enumerable enumerating over the current elements and
over the given elements while avoiding duplicates. |
default Enumerable<Optional<E>[]> |
zipAll(Iterable<? extends E> first,
Iterable<? extends E>... rest)
Returns an
Enumerable consisting of an array of Optional
objects containing elements from the current enumerator and
the given Iterable instances, while any has elements. |
default <T> Enumerable<Pair<Optional<E>,Optional<T>>> |
zipAny(Iterable<T> elements)
Returns an
Enumerable consisting of pairs of elements from the
current enumerator and the given Iterable, while any
of them has elements. |
default <T> Enumerable<Pair<E,T>> |
zipBoth(Enumerable<T> elements)
Returns an
Enumerable consisting of pairs of elements from the
current enumerator and the given Iterable, while both
have elements. |
default <T> Enumerable<Pair<E,Optional<T>>> |
zipLeft(Iterable<T> elements)
Returns an
Enumerable consisting of pairs of elements from the
current enumerator and the given Iterable, while the current
enumerator has elements. |
default <T> Enumerable<Pair<Optional<E>,T>> |
zipRight(Iterable<T> elements)
Returns an
Enumerable consisting of pairs of elements from the
current enumerator and the given Iterable, while the provided
iterator has elements. |
forEach, spliteratordefault Iterator<E> iterator()
Iterator instance that can traverse the current
Enumerable.
The default implementation of this method returns the result of
enumerator().
iterator in interface Iterable<E>Iterator instance iterating over the current
Enumerable instance.enumerator(),
IterableEnumerator<E> enumerator()
Enumerator instance that enumerates over the
current Enumerable.
The default implementation of iterator() calls this method.
Enumerator instance enumerating over the current
Enumerable instance.iterator()boolean enumerating()
enumerator() has been called at least once.
Most non-static methods of Enumerable require that this method
returns false.
enumerating() has been called, false otherwise.boolean onceOnly()
static boolean onceOnly(Iterable<?> iterable)
iterable may generated only
one iterator or not.
This method assumes that non-Enumerable iterables may return
more than one iterator.
@SafeVarargs static <E> Enumerable<E> on(E... elements)
Enumerable enumerating over the given elements.E - type of enumerated elements.elements - succession of elements to enumerate over.Enumerable instance enumerating over elements.static <E> Enumerable<E> of(Iterable<E> source)
Enumerable enumerating over the given Iterable
source.E - type of enumerated elements.source - Iterable providing the elements to enumerate upon.Enumerable enumerating over source.static <E> OnceEnumerable<E> of(Iterator<E> source)
OnceEnumerable enumerating over the given
Iterator source.E - type of enumerated elements.source - Iterator providing the elements to enumerate upon.OnceEnumerable enumerating over source.static <E> OnceEnumerable<E> of(Enumeration<E> source)
OnceEnumerable enumerating over the given
Enumeration.E - type of enumerated elements.source - Enumeration providing the elements to enumerate
upon.OnceEnumerable enumerating over source.static <E> OnceEnumerable<E> of(Stream<E> source)
OnceEnumerable enumerating over the given
Stream.E - type of enumerated elements.source - Stream providing the elements to enumerate upon.OnceEnumerable enumerating over source.static <E> OnceEnumerable<E> of(Spliterator<E> source)
OnceEnumerable enumerating over the given
Spliterator.E - type of enumerated elements.source - Spliterator providing the elements to enumerate
upon.OnceEnumerable enumerating over source.static <E> OnceEnumerable<E> of(Supplier<Optional<E>> source)
OnceEnumerable enumerating over a sequence of
elements supplied lazily.E - type of enumerated elements.source - Supplier providing the elements to enumerate. The
sequence ends with an empty Optional.OnceEnumerable enumerating over the sequence of elements.static <E> Enumerable<E> ofLazyIterable(Supplier<? extends Iterable<E>> source)
Enumerable enumerating over an Iterable
supplied lazily.E - type of enumerated elements.source - Supplier of Iterable.Enumerable enumerating over source.static <E> OnceEnumerable<E> ofLazyIterator(Supplier<? extends Iterator<E>> source)
OnceEnumerable enumerating over an Iterator
supplied lazily.E - type of enumerated elements.source - Supplier of Iterator.OnceEnumerable enumerating over source.static <E> OnceEnumerable<E> ofLazyEnumeration(Supplier<? extends Enumeration<E>> source)
OnceEnumerable enumerating over an
Enumeration supplied lazily.E - type of enumerated elements.source - Supplier of Iterator.OnceEnumerable enumerating over source.static <E> OnceEnumerable<E> ofLazyStream(Supplier<? extends Stream<E>> source)
OnceEnumerable enumerating over a
Stream supplied lazily.E - type of enumerated elements.source - Supplier of Stream.OnceEnumerable enumerating over source.static <E> OnceEnumerable<E> ofLazySpliterator(Supplier<? extends Spliterator<E>> source)
OnceEnumerable enumerating over a Spliterator
supplied lazily.E - type of enumerated elements.source - Supplier of Spliterator.OnceEnumerable enumerating over source.static <E> LateBindingEnumerable<E> ofLateBinding(Class<E> clazz)
LateBindingEnumerable of elements of the given type.E - type of enumerated elements.clazz - class of enumerated elements.LateBindingEnumerable that can be bound to elements
of type clazz.default <T> Enumerable<T> as(Class<T> clazz)
T - new type of enumerated elements.clazz - new class of enumerated elements.Enumerable of another type.default <T> Enumerable<T> asFiltered(Class<T> clazz)
The new enumerable contains only elements of the given type.
T - new type of enumerated and filtered elements.clazz - new class of enumerated and filtered elements.Enumerable of another type.default Enumeration<E> asEnumeration()
Enumeration enumerating the elements of the current
Enumerable.Enumeration instance.default Spliterator<E> asSpliterator()
Spliterator iterating the elements of the current
Enumerable.Spliterator instance.default Stream<E> asStream()
Stream streaming the elements of the current
Enumerable.Stream instance.default Enumerable<E> asTolerant(Consumer<? super Exception> handler)
Enumerable with 0 retries enumerating
over the elements of the current Enumerable.handler - error handler.Enumerable.default Enumerable<E> asTolerant(Consumer<? super Exception> handler, int retries)
Enumerable enumerating over the elements
of the current Enumerable.handler - error handler.retries - positive number of retries on error.Enumerable.default Enumerable<E> append(E... elements)
Enumerable.elements - succession of elements to append.Enumerable.default CachedEnumerable<E> cached()
CachedEnumerable that caches the enumerated elements.CachedEnumerable instance.cached(long, java.util.function.Consumer)default CachedEnumerable<E> cached(long limit, Consumer<CachedEnumerable<E>> onLimitCallback)
CachedEnumerable that caches the enumerated elements
up to a given limit.
Enumeration does not stop at the given limit but the overflow
callback may call CachedEnumerable methods to cancel caching
on overflowing the limit.
limit - cache limit.onLimitCallback - handler called on surpassing the limit.CachedEnumerable instance.cached()static <E> Enumerable<E> choiceOf(Supplier<IntSupplier> indexSupplier, Iterable<E> first, Iterable<? extends E> second, Iterable<? extends E>... rest)
Enumerable that chooses its elements from other
Iterable instances.E - type of enumerated elements.indexSupplier - Supplier of IntSupplier. The
supplied index indicates the source providing the next enumerated
element.first - first Iterable source.second - second Iterable source.rest - rest of Iterable sources.Enumerable that chooses its elements from other
Iterable instances.static <E> Enumerable<E> choiceOf(Supplier<IntSupplier> indexSupplier, Supplier<IntUnaryOperator> altIndexSupplier, Iterable<E> first, Iterable<? extends E> second, Iterable<? extends E>... rest)
Enumerable that chooses its elements from other
Iterable instances.E - Type of enumerated elements.indexSupplier - Supplier of IntSupplier. The
supplied index indicates the source of the next enumerated element.altIndexSupplier - Supplier of IntSupplier. The
supplied index indicates the source of the next enumerated element if
the Iterable indicated by indexSupplier runs out of
elements.first - first Iterable source.second - second Iterable source.rest - rest of Iterable sources.Enumerable that chooses its elements from other
Iterable instances.default Enumerable<E> concat(Iterable<? extends E> elements)
Iterable to the current
Enumerable.elements - Iterable to concatenate.Enumerable.default Enumerable<E> concatOn(E... elements)
Enumerable.elements - elements to concatenate.Enumerable.default Enumerable<E> distinct()
Enumerable enumerating over the distinct elements
of the current Enumerable.Enumerable.default <T> boolean elementsEqual(Iterable<T> elements)
Enumerable matches element-wise
the given Iterable.T - type of elements to match against.elements - Iterable to match against.static <E> Enumerable<E> empty()
Enumerable with no elements.E - Type of enumerated elements.Enumerable.default Enumerable<E> filter(Predicate<? super E> predicate)
Enumerable enumerating over the current elements
satisfying the given Predicate.predicate - predicate to filter by.Enumerable.default <R> Enumerable<R> flatMap(Function<? super E,? extends Iterable<? extends R>> mapper)
Enumerable enumerating over the iterables produced
by applying the given mapper over the elements of the current
Enumerable.R - type of resulted elements.mapper - Function instance mapping the current elements
to iterables.Enumerable.static <E> Enumerable<E> iterate(E seed, UnaryOperator<E> f)
Enumerable enumerating over the elements generated by
repeatedly applying the given unary operator on the given seed.E - type of enumerated elements.seed - seed element.f - unary operator.Enumerable.default Enumerable<E> limit(long maxSize)
Enumerable enumerating over the current elements up to
the given limit.maxSize - limit to iterate up to.Enumerable.default Enumerable<E> limitWhile(Predicate<? super E> predicate)
Enumerable enumerating over the current elements while
the given predicate holds true.predicate - condition to continue enumeration.Enumerable.default <R> Enumerable<R> map(Function<? super E,? extends R> mapper)
Enumerable enumerating over the current elements
mapped by the given mapper.R - type of resulted elements.mapper - Function instance mapping the current elements.Enumerable.default <R> Enumerable<R> map(BiFunction<? super E,? super Long,? extends R> mapper)
Enumerable enumerating over the current indexed
elements mapped by the given mapper.R - type of resulted elements.mapper - BiFunction instance mapping the current indexed
elements.Enumerable.default Enumerable<E> peek(Consumer<? super E> action)
Enumerable enumerating the current elements while
feeding them to the given Consumer.action - Consumer instance to apply upon each element.Enumerable.default Enumerable<E> prepend(Iterable<? extends E> elements)
Enumerable by the given Iterable.elements - Iterable to prepend.Enumerable.default Enumerable<E> prependOn(E... elements)
Enumerable by the given elements.elements - elements to prepend.Enumerable.static <E> Enumerable<E> range(E startInclusive, E endExclusive, UnaryOperator<E> succ, Comparator<? super E> cmp)
Enumerable enumerating over a range of elements.E - type of enumerated elements.startInclusive - inclusive start of range.endExclusive - exclusive end of range.succ - successor unary operator.cmp - comparison binary operator.Enumerable.static <E> Enumerable<E> rangeClosed(E startInclusive, E endInclusive, UnaryOperator<E> succ, Comparator<? super E> cmp)
Enumerable enumerating over a range of elements.E - type of enumerated elements.startInclusive - inclusive start of range.endInclusive - inclusive end of range.succ - successor unary operator.cmp - comparison binary operator.Enumerable.static Enumerable<Integer> rangeInt(int startInclusive, int endExclusive)
Enumerable enumerating over a range of integers.startInclusive - inclusive start of range.endExclusive - exclusive end of range.Enumerable.static Enumerable<Integer> rangeIntClosed(int startInclusive, int endInclusive)
Enumerable enumerating over a range of integers.startInclusive - inclusive start of range.endInclusive - inclusive end of range.Enumerable.static Enumerable<Long> rangeLong(long startInclusive, long endExclusive)
Enumerable enumerating over a range of long integers.startInclusive - inclusive start of range.endExclusive - exclusive end of range.Enumerable.static Enumerable<Long> rangeLongClosed(long startInclusive, long endInclusive)
Enumerable enumerating over a range of long integers.startInclusive - inclusive start of range.endInclusive - inclusive end of range.Enumerable.static <E> Enumerable<E> repeat(E element, long count)
Enumerable repeating the given element the given
number of time.E - type of enumerated elements.element - element to repeat.count - number of times to repeat.Enumerable.default Enumerable<E> repeatAll(int count)
Enumerable repeating all the current elements the
given number of times.count - number of times to repeat.Enumerable.default Enumerable<E> repeatEach(long count)
Enumerable repeating each current element the given
number of times.count - number of times to repeat.Enumerable.default Enumerable<E> reverse()
Enumerable enumerating over the current elements in
reversed order.Enumerable.default Enumerable<E> skip(long n)
Enumerable that skips the given number of current
elements.n - number of elements to skip.Enumerable.default Enumerable<E> skipWhile(Predicate<? super E> predicate)
Enumerable that skips while the given condition
holds true.predicate - skipping condition.Enumerable.default Enumerable<E> sorted()
Enumerable enumerating over the current elements
in sorted order.Enumerable.default Enumerable<E> sorted(Comparator<? super E> comparator)
Enumerable enumerating over the current elements
in sorted order according to the given comparator.comparator - sorting criterion.Enumerable.default Enumerable<E> take(long n)
Enumerable enumerating over the current elements up to
the given limit.n - limit to iterate up to.Enumerable.default Enumerable<E> takeWhile(Predicate<? super E> predicate)
Enumerable enumerating over the current elements while
the given predicate holds true.predicate - condition to continue enumeration.Enumerable.default Enumerable<E> union(Iterable<E> others)
Enumerable enumerating over the current elements and
over the given Iterable while avoiding duplicates.others - Iterable to perform union with.Enumerable.default Enumerable<E> unionOn(E... others)
Enumerable enumerating over the current elements and
over the given elements while avoiding duplicates.others - elements to perform union with.Enumerable.default <T> Enumerable<Pair<Optional<E>,Optional<T>>> zipAny(Iterable<T> elements)
Enumerable consisting of pairs of elements from the
current enumerator and the given Iterable, while any
of them has elements.
The resulted enumerator stops when both the current enumerable and the
provided Iterable stop. The first element of a returned
pair is empty Optional if the current enumerator has no
elements. Likewise, the second element of a returned pair is empty
Optional if the provided Iterable has no elements.
T - the of elements to zip with.elements - Iterable to zip with.Enumerable.default <T> Enumerable<Pair<E,T>> zipBoth(Enumerable<T> elements)
Enumerable consisting of pairs of elements from the
current enumerator and the given Iterable, while both
have elements.
The resulted enumerator stops when aby of the current enumerator or the
provided Iterable stop.
T - the of elements to zip with.elements - Iterable to zip with.Enumerable.default <T> Enumerable<Pair<E,Optional<T>>> zipLeft(Iterable<T> elements)
Enumerable consisting of pairs of elements from the
current enumerator and the given Iterable, while the current
enumerator has elements.
The resulted enumerator stops when the current enumerator stops.
The second element of a returned pair is empty Optional if
the provided Iterable has no elements.
T - the of elements to zip withelements - Iterable to zip withEnumerabledefault <T> Enumerable<Pair<Optional<E>,T>> zipRight(Iterable<T> elements)
Enumerable consisting of pairs of elements from the
current enumerator and the given Iterable, while the provided
iterator has elements.
The resulted enumerator stops when the provided Iterable stops.
The first element of a returned pair is empty Optional if the
current enumerator has no elements.
T - the of elements to zip withelements - Iterable to zip withEnumerabledefault Enumerable<Optional<E>[]> zipAll(Iterable<? extends E> first, Iterable<? extends E>... rest)
Enumerable consisting of an array of Optional
objects containing elements from the current enumerator and
the given Iterable instances, while any has elements.first - first iterable to zip with.rest - the rest of iterables to zip with.Enumerable.Copyright © 2016. All rights reserved.