A - the element typepublic interface EnhancedIterable<A> extends Iterable<A>
Iterable with some additional methods.
May be infinite, finite, or empty.
Any Iterable can be upgraded to an EnhancedIterable by calling enhance(Iterable)}.
| Modifier and Type | Method and Description |
|---|---|
default NonEmptyIterable<A> |
append(A element) |
default EnhancedIterable<A> |
concat(Iterable<A> other) |
default EnhancedIterable<A> |
drop(int count)
Returns a new
EnhancedIterable that drops the first count elements of this EnhancedIterable. |
default EnhancedIterable<A> |
dropWhile(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate) |
static <A> EnhancedIterable<A> |
enhance(Iterable<A> underlying) |
default EnhancedIterable<A> |
filter(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate) |
default com.jnape.palatable.lambda.adt.Maybe<A> |
find(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate)
Finds the first element of this
EnhancedIterable that satisfies a predicate, if any. |
default <B> EnhancedIterable<B> |
fmap(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends B> f) |
default EnhancedIterable<A> |
intersperse(A a) |
default boolean |
isEmpty() |
static <A> ImmutableNonEmptyFiniteIterable<A> |
of(A first,
A... more) |
default <B,C> com.jnape.palatable.lambda.adt.hlist.Tuple2<? extends EnhancedIterable<B>,? extends EnhancedIterable<C>> |
partition(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends com.jnape.palatable.lambda.adt.coproduct.CoProduct2<B,C,?>> function)
Partitions this
EnhancedIterable given a disjoint mapping function. |
default NonEmptyIterable<A> |
prepend(A element) |
default EnhancedIterable<A> |
prependAll(A a) |
default EnhancedIterable<? extends NonEmptyFiniteIterable<A>> |
slide(int k)
"Slide" a window of
k elements across the EnhancedIterable by one element at a time. |
default com.jnape.palatable.lambda.adt.hlist.Tuple2<? extends EnhancedIterable<A>,? extends EnhancedIterable<A>> |
span(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate) |
default NonEmptyIterable<? extends EnhancedIterable<A>> |
tails() |
default FiniteIterable<A> |
take(int count) |
default EnhancedIterable<A> |
takeWhile(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate) |
default A[] |
toArray(Class<A[]> arrayType) |
default <C extends Collection<A>> |
toCollection(com.jnape.palatable.lambda.functions.Fn0<C> cSupplier) |
default <B,C> EnhancedIterable<C> |
zipWith(com.jnape.palatable.lambda.functions.Fn2<A,B,C> fn,
Iterable<B> other) |
forEach, iterator, spliteratordefault NonEmptyIterable<A> append(A element)
default EnhancedIterable<A> concat(Iterable<A> other)
default EnhancedIterable<A> drop(int count)
EnhancedIterable that drops the first count elements of this EnhancedIterable.count - the number of elements to drop from this EnhancedIterable.
Must be >= 0.
May exceed size of this EnhancedIterable, in which case, the result will be an
empty EnhancedIterable.EnhancedIterable<A>default EnhancedIterable<A> dropWhile(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate)
default EnhancedIterable<A> filter(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate)
default com.jnape.palatable.lambda.adt.Maybe<A> find(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate)
EnhancedIterable that satisfies a predicate, if any.predicate - a predicate; not nullMaybe.just(A) if a matching element is found;
Maybe.nothing() otherwise.default <B> EnhancedIterable<B> fmap(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends B> f)
default EnhancedIterable<A> intersperse(A a)
default boolean isEmpty()
default <B,C> com.jnape.palatable.lambda.adt.hlist.Tuple2<? extends EnhancedIterable<B>,? extends EnhancedIterable<C>> partition(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends com.jnape.palatable.lambda.adt.coproduct.CoProduct2<B,C,?>> function)
EnhancedIterable given a disjoint mapping function.
Note that while the returned tuple must be constructed eagerly, the left and right iterables contained therein are both lazy, so comprehension over infinite iterables is supported.
B - The output left Iterable element type, as well as the CoProduct2 A typeC - The output right Iterable element type, as well as the CoProduct2 B typefunction - the mapping functionTuple2<EnhancedIterable<B>, EnhancedIterable<C>>default NonEmptyIterable<A> prepend(A element)
default EnhancedIterable<A> prependAll(A a)
default EnhancedIterable<? extends NonEmptyFiniteIterable<A>> slide(int k)
k elements across the EnhancedIterable by one element at a time.
Example:
EnhancedIterable.of(1, 2, 3, 4, 5).slide(2); // [[1, 2], [2, 3], [3, 4], [4, 5]]
k - the number of elements in the sliding window. Must be >= 1.EnhancedIterable<NonEmptyFiniteIterable<A>>default com.jnape.palatable.lambda.adt.hlist.Tuple2<? extends EnhancedIterable<A>,? extends EnhancedIterable<A>> span(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate)
default NonEmptyIterable<? extends EnhancedIterable<A>> tails()
default FiniteIterable<A> take(int count)
default EnhancedIterable<A> takeWhile(com.jnape.palatable.lambda.functions.Fn1<? super A,? extends Boolean> predicate)
default <C extends Collection<A>> C toCollection(com.jnape.palatable.lambda.functions.Fn0<C> cSupplier)
default <B,C> EnhancedIterable<C> zipWith(com.jnape.palatable.lambda.functions.Fn2<A,B,C> fn, Iterable<B> other)
static <A> EnhancedIterable<A> enhance(Iterable<A> underlying)
@SafeVarargs static <A> ImmutableNonEmptyFiniteIterable<A> of(A first, A... more)
Copyright © 2019. All rights reserved.