T - Type of data stored inside the nested Maybe(s)public final class MaybeT<W extends WitnessType<W>,T> extends ValueTransformer<W,T> implements To<MaybeT<W,T>>, Transformable<T>, Filters<T>
Fn0.FunctionalOperations<R>, Fn0.Instances, Fn0.SupplierKind<R>| Modifier and Type | Method and Description |
|---|---|
<U> MaybeT<W,U> |
cast(java.lang.Class<? extends U> type)
Cast all elements in a reactiveStream to a given type, possibly throwing a
ClassCastException. |
<T2,R> MaybeT<W,R> |
combine(Value<? extends T2> app,
java.util.function.BiFunction<? super T,? super T2,? extends R> fn) |
<R> MaybeT<W,R> |
empty() |
boolean |
equals(java.lang.Object o) |
MaybeT<W,T> |
filter(java.util.function.Predicate<? super T> test)
Keep only elements for which the supplied predicates hold
e.g.
|
MaybeT<W,T> |
filterNot(java.util.function.Predicate<? super T> predicate)
Remove any elements for which the predicate holds (inverse operation to filter)
e.g.
|
<B> MaybeT<W,B> |
flatMap(java.util.function.Function<? super T,? extends MonadicValue<? extends B>> f) |
<R> MaybeT<W,R> |
flatMapIterable(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper) |
<R> MaybeT<W,R> |
flatMapPublisher(java.util.function.Function<? super T,? extends org.reactivestreams.Publisher<? extends R>> mapper) |
<B> MaybeT<W,B> |
flatMapT(java.util.function.Function<? super T,MaybeT<W,B>> f)
Flat Map the wrapped Maybe
|
<R1,R> MaybeT<W,R> |
forEach2(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction) |
<R1,R> MaybeT<W,R> |
forEach2(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1,
java.util.function.BiFunction<? super T,? super R1,java.lang.Boolean> filterFunction,
java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction) |
<R1,R> MaybeT<W,R> |
forEach2M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction) |
<R1,R> MaybeT<W,R> |
forEach2M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1,
java.util.function.BiFunction<? super T,? super R1,java.lang.Boolean> filterFunction,
java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction) |
<T2,R1,R2,R> |
forEach3(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends MonadicValue<R2>> value2,
Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction) |
<T2,R1,R2,R> |
forEach3(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends MonadicValue<R2>> value2,
Fn3<? super T,? super R1,? super R2,java.lang.Boolean> filterFunction,
Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction) |
<T2,R1,R2,R> |
forEach3M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends MaybeT<W,R2>> value2,
Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction) |
<T2,R1,R2,R> |
forEach3M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends MaybeT<W,R2>> value2,
Fn3<? super T,? super R1,? super R2,java.lang.Boolean> filterFunction,
Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction) |
<T2,R1,R2,R3,R> |
forEach4(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends MonadicValue<R2>> value2,
Fn3<? super T,? super R1,? super R2,? extends MonadicValue<R3>> value3,
Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction) |
<T2,R1,R2,R3,R> |
forEach4(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends MonadicValue<R2>> value2,
Fn3<? super T,? super R1,? super R2,? extends MonadicValue<R3>> value3,
Fn4<? super T,? super R1,? super R2,? super R3,java.lang.Boolean> filterFunction,
Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction) |
<T2,R1,R2,R3,R> |
forEach4M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends MaybeT<W,R2>> value2,
Fn3<? super T,? super R1,? super R2,? extends MaybeT<W,R3>> value3,
Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction) |
<T2,R1,R2,R3,R> |
forEach4M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1,
java.util.function.BiFunction<? super T,? super R1,? extends MaybeT<W,R2>> value2,
Fn3<? super T,? super R1,? super R2,? extends MaybeT<W,R3>> value3,
Fn4<? super T,? super R1,? super R2,? super R3,java.lang.Boolean> filterFunction,
Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction) |
static <W extends WitnessType<W>,A> |
fromAnyM(AnyM<W,A> anyM)
|
AnyM<W,? extends ReactiveSeq<T>> |
generate() |
int |
hashCode() |
AnyM<W,? extends ReactiveSeq<T>> |
iterate(java.util.function.UnaryOperator<T> fn)
public AnyM
|
java.util.Iterator<T> |
iterator() |
static <W extends WitnessType<W>,U,R> |
lift(java.util.function.Function<? super U,? extends R> fn)
Lift a function into one that accepts and returns an MaybeWT
This allows multiple monad types to add functionality to existing function and methods
e.g.
|
static <W extends WitnessType<W>,U1,U2,R> |
lift2(java.util.function.BiFunction<? super U1,? super U2,? extends R> fn)
Lift a BiFunction into one that accepts and returns MaybeWTs
This allows multiple monad types to add functionality to existing function and methods
e.g.
|
<B> MaybeT<W,B> |
map(java.util.function.Function<? super T,? extends B> f)
Map the wrapped Maybe
|
java.lang.String |
mkString() |
MaybeT<W,T> |
notNull()
Filter elements retaining only values which are not null
|
static <W extends WitnessType<W>,A> |
of(AnyM<W,Maybe<A>> monads)
Construct an MaybeWT from an AnyM that wraps a monad containing MaybeWs
|
<U> MaybeT<W,U> |
ofType(java.lang.Class<? extends U> type)
Keep only those elements in a reactiveStream that are of a given type.
|
MaybeT<W,T> |
peek(java.util.function.Consumer<? super T> peek)
Peek at the current value of the Maybe
|
ReactiveSeq<T> |
stream() |
java.lang.String |
toString() |
<R> MaybeT<W,R> |
trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
Performs a map operation that can call a recursive method without running out of stack space
|
AnyM<W,? extends MonadicValue<T>> |
transformerStream() |
<R> MaybeT<W,R> |
unit(R value) |
protected <R> MaybeT<W,R> |
unitAnyM(AnyM<W,? super MonadicValue<R>> traversable)
Deprecated.
|
<R> MaybeT<W,R> |
unitIterator(java.util.Iterator<R> it) |
AnyM<W,Maybe<T>> |
unwrap()
Unwrap a wrapped value
|
<R> R |
unwrapTo(java.util.function.Function<? super AnyM<W,Maybe<T>>,? extends R> fn) |
MaybeT<W,T> |
zip(java.util.function.BinaryOperator<Zippable<T>> combiner,
Zippable<T> app)
Combine two applicatives together using the provided BinaryOperator (Semigroup, Monoid and Reducer all
extend BinaryOperator - checkout SemigroupK and Monoids for a large number of canned combinations).
|
<T2,R> MaybeT<W,R> |
zip(java.lang.Iterable<? extends T2> iterable,
java.util.function.BiFunction<? super T,? super T2,? extends R> fn)
Zip (combine) this Zippable with the supplied Iterable using the supplied combining function
|
<U> MaybeT<W,org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(java.lang.Iterable<? extends U> other)
Zip (combine) this Zippable with the supplied Iterable combining both into a Tuple2
|
<S,U> MaybeT<W,org.jooq.lambda.tuple.Tuple3<T,S,U>> |
zip3(java.lang.Iterable<? extends S> second,
java.lang.Iterable<? extends U> third)
zip 3 Streams into one
|
<S,U,R> MaybeT<W,R> |
zip3(java.lang.Iterable<? extends S> second,
java.lang.Iterable<? extends U> third,
Fn3<? super T,? super S,? super U,? extends R> fn3) |
<T2,T3,T4> MaybeT<W,org.jooq.lambda.tuple.Tuple4<T,T2,T3,T4>> |
zip4(java.lang.Iterable<? extends T2> second,
java.lang.Iterable<? extends T3> third,
java.lang.Iterable<? extends T4> fourth)
zip 4 Streams into 1
|
<T2,T3,T4,R> |
zip4(java.lang.Iterable<? extends T2> second,
java.lang.Iterable<? extends T3> third,
java.lang.Iterable<? extends T4> fourth,
Fn4<? super T,? super T2,? super T3,? super T4,? extends R> fn) |
<T2,R> MaybeT<W,R> |
zipP(org.reactivestreams.Publisher<? extends T2> publisher,
java.util.function.BiFunction<? super T,? super T2,? extends R> fn)
Zip (combine) this Zippable with the supplied Publisher, using the supplied combining function
|
<U> MaybeT<W,org.jooq.lambda.tuple.Tuple2<T,U>> |
zipP(org.reactivestreams.Publisher<? extends U> other) |
<U> MaybeT<W,org.jooq.lambda.tuple.Tuple2<T,U>> |
zipS(java.util.stream.Stream<? extends U> other)
Zip (combine) this Zippable with the supplied Stream combining both into a Tuple2
|
<U,R> MaybeT<W,R> |
zipS(java.util.stream.Stream<? extends U> other,
java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zip (combine) this Zippable with the supplied Stream, using the supplied combining function
|
<R> MaybeT<W,R> |
zipWith(java.lang.Iterable<java.util.function.Function<? super T,? extends R>> fn) |
<R> MaybeT<W,R> |
zipWithP(org.reactivestreams.Publisher<java.util.function.Function<? super T,? extends R>> fn) |
<R> MaybeT<W,R> |
zipWithS(java.util.stream.Stream<java.util.function.Function<? super T,? extends R>> fn) |
and, get, isPresent, negate, or, orElse, orElseGet, orElseThrow, subscribe, visit, zipclone, finalize, getClass, notify, notifyAll, wait, wait, waitretry, retryunwrapIfInstance, unwrapNestedendsWith, endsWithIterable, findAny, findFirst, firstValue, foldLeft, foldLeft, foldLeft, foldLeft, foldRight, foldRight, foldRight, foldRightMapToType, get, groupBy, join, join, join, mapReduce, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce, reduce, schedule, scheduleFixedDelay, scheduleFixedRate, single, single, singleUnsafe, startsWith, startsWithIterable, takeOne, xMatchpublic java.util.Iterator<T> iterator()
iterator in interface java.lang.Iterable<T>public ReactiveSeq<T> stream()
public AnyM<W,Maybe<T>> unwrap()
Unwrapableunwrap in interface Unwrapablepublic <R> R unwrapTo(java.util.function.Function<? super AnyM<W,Maybe<T>>,? extends R> fn)
@Deprecated protected <R> MaybeT<W,R> unitAnyM(AnyM<W,? super MonadicValue<R>> traversable)
unitAnyM in class ValueTransformer<W extends WitnessType<W>,T>public AnyM<W,? extends MonadicValue<T>> transformerStream()
transformerStream in class ValueTransformer<W extends WitnessType<W>,T>public MaybeT<W,T> filter(java.util.function.Predicate<? super T> test)
Filters
of(1,2,3).filter(i->i>2);
//[3]
public MaybeT<W,T> peek(java.util.function.Consumer<? super T> peek)
MaybeWT.of(AnyM.fromStream(Arrays.asMaybeW(10))
.peek(System.out::println);
//prints 10
peek in interface Transformable<T>peek - Consumer to accept current value of Maybepublic <B> MaybeT<W,B> map(java.util.function.Function<? super T,? extends B> f)
MaybeWT.of(AnyM.fromStream(Arrays.asMaybeW(10))
.map(t->t=t+1);
//MaybeWT<AnyMSeq<Stream<Maybe[11]>>>
map in interface Transformable<T>f - Mapping function for the wrapped Maybepublic <B> MaybeT<W,B> flatMapT(java.util.function.Function<? super T,MaybeT<W,B>> f)
MaybeWT.of(AnyM.fromStream(Arrays.asMaybeW(10))
.flatMap(t->Maybe.completedMaybe(20));
//MaybeWT<AnyMSeq<Stream<Maybe[20]>>>
f - FlatMap functionpublic <B> MaybeT<W,B> flatMap(java.util.function.Function<? super T,? extends MonadicValue<? extends B>> f)
flatMap in class ValueTransformer<W extends WitnessType<W>,T>public static <W extends WitnessType<W>,U,R> java.util.function.Function<MaybeT<W,U>,MaybeT<W,R>> lift(java.util.function.Function<? super U,? extends R> fn)
Function<Integer,Integer> add2 = i -> i+2;
Function<MaybeWT<Integer>, MaybeWT<Integer>> optTAdd2 = MaybeWT.lift(add2);
Stream<Integer> withNulls = Stream.of(1,2,3);
AnyMSeq<Integer> reactiveStream = AnyM.fromStream(withNulls);
AnyMSeq<Maybe<Integer>> streamOpt = reactiveStream.map(Maybe::completedMaybe);
List<Integer> results = optTAdd2.applyHKT(MaybeWT.of(streamOpt))
.unwrap()
.<Stream<Maybe<Integer>>>unwrap()
.map(Maybe::join)
.collect(CyclopsCollectors.toList());
//Maybe.completedMaybe(List[3,4]);
fn - Function to enhance with functionality from Maybe and another monad typepublic static <W extends WitnessType<W>,U1,U2,R> java.util.function.BiFunction<MaybeT<W,U1>,MaybeT<W,U2>,MaybeT<W,R>> lift2(java.util.function.BiFunction<? super U1,? super U2,? extends R> fn)
BiFunction<Integer,Integer,Integer> add = (a,b) -> a+b;
BiFunction<MaybeWT<Integer>,MaybeWT<Integer>,MaybeWT<Integer>> optTAdd2 = MaybeWT.lift2(add);
Stream<Integer> withNulls = Stream.of(1,2,3);
AnyMSeq<Integer> reactiveStream = AnyM.ofMonad(withNulls);
AnyMSeq<Maybe<Integer>> streamOpt = reactiveStream.map(Maybe::completedMaybe);
Maybe<Maybe<Integer>> two = Maybe.completedMaybe(Maybe.completedMaybe(2));
AnyMSeq<Maybe<Integer>> Maybe= AnyM.fromMaybeW(two);
List<Integer> results = optTAdd2.applyHKT(MaybeWT.of(streamOpt),MaybeWT.of(Maybe))
.unwrap()
.<Stream<Maybe<Integer>>>unwrap()
.map(Maybe::join)
.collect(CyclopsCollectors.toList());
//Maybe.completedMaybe(List[3,4,5]);
fn - BiFunction to enhance with functionality from Maybe and another monad typepublic static <W extends WitnessType<W>,A> MaybeT<W,A> fromAnyM(AnyM<W,A> anyM)
anyM - AnyM that doesn't contain a monad wrapping an Maybepublic static <W extends WitnessType<W>,A> MaybeT<W,A> of(AnyM<W,Maybe<A>> monads)
monads - AnyM that contains a monad wrapping an Maybepublic java.lang.String toString()
toString in class java.lang.Objectpublic <R> MaybeT<W,R> empty()
empty in class ValueTransformer<W extends WitnessType<W>,T>public int hashCode()
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic <T2,R> MaybeT<W,R> combine(Value<? extends T2> app, java.util.function.BiFunction<? super T,? super T2,? extends R> fn)
combine in class ValueTransformer<W extends WitnessType<W>,T>public MaybeT<W,T> zip(java.util.function.BinaryOperator<Zippable<T>> combiner, Zippable<T> app)
Zippablezip in interface Zippable<T>zip in class ValueTransformer<W extends WitnessType<W>,T>Semigroup,
Semigroups,
Monoid,
To lift any Semigroup (or monoid) up to handling Applicatives use the combineApplicatives operator in SemigroupK
{@see com.aol.cyclops2.SemigroupK#combineApplicatives(BiFunction) } or Monoids
{ {@see com.aol.cyclops2.Monoids#combineApplicatives(java.util.function.Function, com.aol.cyclops2.function.Monoid)
}
{@code
BinaryOperator> sumMaybes = SemigroupK.combineScalarFunctors(SemigroupK.intSum);
Maybe.just(1).zip(sumMaybes, Maybe.just(5))
//Maybe.just(6));
}
public AnyM<W,? extends ReactiveSeq<T>> iterate(java.util.function.UnaryOperator<T> fn)
ValueTransformeriterate in class ValueTransformer<W extends WitnessType<W>,T>public AnyM<W,? extends ReactiveSeq<T>> generate()
generate in class ValueTransformer<W extends WitnessType<W>,T>public <T2,R> MaybeT<W,R> zip(java.lang.Iterable<? extends T2> iterable, java.util.function.BiFunction<? super T,? super T2,? extends R> fn)
Zippablezip in interface Zippable<T>zip in class ValueTransformer<W extends WitnessType<W>,T>iterable - to zip withfn - Zip functionpublic <T2,R> MaybeT<W,R> zipP(org.reactivestreams.Publisher<? extends T2> publisher, java.util.function.BiFunction<? super T,? super T2,? extends R> fn)
ZippablezipP in interface Zippable<T>zipP in class ValueTransformer<W extends WitnessType<W>,T>publisher - to combine withfn - Zip / combining functionpublic <U> MaybeT<W,org.jooq.lambda.tuple.Tuple2<T,U>> zipS(java.util.stream.Stream<? extends U> other)
ZippablezipS in interface Zippable<T>zipS in class ValueTransformer<W extends WitnessType<W>,T>other - Stream to combine withpublic <U> MaybeT<W,org.jooq.lambda.tuple.Tuple2<T,U>> zip(java.lang.Iterable<? extends U> other)
Zippablezip in interface Zippable<T>zip in class ValueTransformer<W extends WitnessType<W>,T>other - Iterable to combine withpublic <T2,R1,R2,R3,R> MaybeT<W,R> forEach4(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends MonadicValue<R2>> value2, Fn3<? super T,? super R1,? super R2,? extends MonadicValue<R3>> value3, Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction)
forEach4 in class ValueTransformer<W extends WitnessType<W>,T>public <T2,R1,R2,R3,R> MaybeT<W,R> forEach4(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends MonadicValue<R2>> value2, Fn3<? super T,? super R1,? super R2,? extends MonadicValue<R3>> value3, Fn4<? super T,? super R1,? super R2,? super R3,java.lang.Boolean> filterFunction, Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction)
forEach4 in class ValueTransformer<W extends WitnessType<W>,T>public <T2,R1,R2,R> MaybeT<W,R> forEach3(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends MonadicValue<R2>> value2, Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction)
forEach3 in class ValueTransformer<W extends WitnessType<W>,T>public <T2,R1,R2,R> MaybeT<W,R> forEach3(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends MonadicValue<R2>> value2, Fn3<? super T,? super R1,? super R2,java.lang.Boolean> filterFunction, Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction)
forEach3 in class ValueTransformer<W extends WitnessType<W>,T>public <R1,R> MaybeT<W,R> forEach2(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction)
forEach2 in class ValueTransformer<W extends WitnessType<W>,T>public <R1,R> MaybeT<W,R> forEach2(java.util.function.Function<? super T,? extends MonadicValue<R1>> value1, java.util.function.BiFunction<? super T,? super R1,java.lang.Boolean> filterFunction, java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction)
forEach2 in class ValueTransformer<W extends WitnessType<W>,T>public <R> MaybeT<W,R> flatMapIterable(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper)
flatMapIterable in class ValueTransformer<W extends WitnessType<W>,T>public <R> MaybeT<W,R> flatMapPublisher(java.util.function.Function<? super T,? extends org.reactivestreams.Publisher<? extends R>> mapper)
flatMapPublisher in class ValueTransformer<W extends WitnessType<W>,T>public <T2,R1,R2,R3,R> MaybeT<W,R> forEach4M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends MaybeT<W,R2>> value2, Fn3<? super T,? super R1,? super R2,? extends MaybeT<W,R3>> value3, Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction)
public <T2,R1,R2,R3,R> MaybeT<W,R> forEach4M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends MaybeT<W,R2>> value2, Fn3<? super T,? super R1,? super R2,? extends MaybeT<W,R3>> value3, Fn4<? super T,? super R1,? super R2,? super R3,java.lang.Boolean> filterFunction, Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction)
public <T2,R1,R2,R> MaybeT<W,R> forEach3M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends MaybeT<W,R2>> value2, Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction)
public <T2,R1,R2,R> MaybeT<W,R> forEach3M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends MaybeT<W,R2>> value2, Fn3<? super T,? super R1,? super R2,java.lang.Boolean> filterFunction, Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction)
public <R1,R> MaybeT<W,R> forEach2M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1, java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction)
public <R1,R> MaybeT<W,R> forEach2M(java.util.function.Function<? super T,? extends MaybeT<W,R1>> value1, java.util.function.BiFunction<? super T,? super R1,java.lang.Boolean> filterFunction, java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction)
public java.lang.String mkString()
public <U> MaybeT<W,U> cast(java.lang.Class<? extends U> type)
TransformableClassCastException.
// ClassCastException ReactiveSeq.of(1, "a", 2, "b", 3).cast(Integer.class)cast in interface Transformable<T>public <U> MaybeT<W,U> ofType(java.lang.Class<? extends U> type)
Filters
// (1, 2, 3) ReactiveSeq.of(1, "a", 2, "b",3).ofType(Integer.class)
public MaybeT<W,T> filterNot(java.util.function.Predicate<? super T> predicate)
Filters
of(1,2,3).filter(i->i>2);
//[1,2]
public MaybeT<W,T> notNull()
Filters
of(1,2,null,4).nonNull();
//[1,2,4]
public <R> MaybeT<W,R> zipWith(java.lang.Iterable<java.util.function.Function<? super T,? extends R>> fn)
public <R> MaybeT<W,R> zipWithS(java.util.stream.Stream<java.util.function.Function<? super T,? extends R>> fn)
public <R> MaybeT<W,R> zipWithP(org.reactivestreams.Publisher<java.util.function.Function<? super T,? extends R>> fn)
public <R> MaybeT<W,R> trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
Transformable
ReactiveSeq.of(10,20,30,40)
.trampoline(i-> fibonacci(i))
.forEach(System.out::println);
Trampoline<Long> fibonacci(int i){
return fibonacci(i,1,0);
}
Trampoline<Long> fibonacci(int n, long a, long b) {
return n == 0 ? Trampoline.done(b) : Trampoline.more( ()->fibonacci(n-1, a+b, a));
}
55
6765
832040
102334155
ReactiveSeq.of(10_000,200_000,3_000_000,40_000_000)
.trampoline(i-> fibonacci(i))
.forEach(System.out::println);
completes successfully
trampoline in interface Transformable<T>mapper - TCO Transformation functionpublic <U,R> MaybeT<W,R> zipS(java.util.stream.Stream<? extends U> other, java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zippablepublic <U> MaybeT<W,org.jooq.lambda.tuple.Tuple2<T,U>> zipP(org.reactivestreams.Publisher<? extends U> other)
public <S,U> MaybeT<W,org.jooq.lambda.tuple.Tuple3<T,S,U>> zip3(java.lang.Iterable<? extends S> second, java.lang.Iterable<? extends U> third)
Zippable
List<Tuple3<Integer, Integer, Character>> list = of(1, 2, 3, 4, 5, 6).zip3(of(100, 200, 300, 400), of('a', 'b', 'c')).collect(CyclopsCollectors.toList());
// [[1,100,'a'],[2,200,'b'],[3,300,'c']]
public <S,U,R> MaybeT<W,R> zip3(java.lang.Iterable<? extends S> second, java.lang.Iterable<? extends U> third, Fn3<? super T,? super S,? super U,? extends R> fn3)
public <T2,T3,T4> MaybeT<W,org.jooq.lambda.tuple.Tuple4<T,T2,T3,T4>> zip4(java.lang.Iterable<? extends T2> second, java.lang.Iterable<? extends T3> third, java.lang.Iterable<? extends T4> fourth)
Zippable
List<Tuple4<Integer, Integer, Character, String>> list = of(1, 2, 3, 4, 5, 6).zip4(of(100, 200, 300, 400), of('a', 'b', 'c'), of("hello", "world"))
.collect(CyclopsCollectors.toList());
// [[1,100,'a',"hello"],[2,200,'b',"world"]]