T
- the type of elements held in this collectionpublic interface ListX<T> extends To<ListX<T>>, java.util.List<T>, LazyCollectionX<T>, MutableSequenceX<T>, java.lang.Comparable<T>, OnEmptySwitch<T,java.util.List<T>>, Higher<ListX.µ,T>
Modifier and Type | Interface and Description |
---|---|
static class |
ListX.µ |
static class |
ListX.Instances |
Modifier and Type | Method and Description |
---|---|
default AnyMSeq<Witness.list,T> |
anyM() |
default ListX<T> |
append(T... values)
Append values toNested the take of this ReactiveSeq
|
default ListX<T> |
append(T value) |
default <U> ListX<U> |
cast(java.lang.Class<? extends U> type)
Cast all elements in a reactiveStream toNested a given type, possibly throwing a
ClassCastException . |
default <R> ListX<R> |
coflatMap(java.util.function.Function<? super ListX<T>,? extends R> fn)
coflatMap pattern, can be used toNested perform maybe reductions / collections / folds and other terminal operations
|
default ListX<ReactiveSeq<T>> |
combinations()
Generate the combinations based on values in the ExtendedTraversable.
|
default ListX<ReactiveSeq<T>> |
combinations(int size)
Generate the combinations based on values in the ExtendedTraversable.
|
default ListX<T> |
combine(java.util.function.BiPredicate<? super T,? super T> predicate,
java.util.function.BinaryOperator<T> op)
Combine two adjacent elements in a ListX using the supplied BinaryOperator
This is a stateful grouping and reduction operation.
|
default ListX<T> |
combine(Monoid<T> op,
java.util.function.BiPredicate<? super T,? super T> predicate)
Combine two adjacent elements in a traversable using the supplied BinaryOperator
This is a stateful grouping and reduction operation.
|
default int |
compareTo(T o) |
default ListX<T> |
cycle(long times)
Convert toNested a Stream with the values repeated specified times
|
default ListX<T> |
cycle(Monoid<T> m,
long times)
Convert toNested a Stream with the result of a reduction operation repeated
specified times
|
default ListX<T> |
cycleUntil(java.util.function.Predicate<? super T> predicate)
Repeat in a Stream until specified predicate holds
|
default ListX<T> |
cycleWhile(java.util.function.Predicate<? super T> predicate)
Repeat in a Stream while specified predicate holds
|
static <T> java.util.stream.Collector<T,?,java.util.List<T>> |
defaultCollector() |
default ListX<T> |
deleteBetween(int start,
int end)
Delete elements between given indexes in a Stream
|
default ListX<T> |
distinct() |
default ListX<T> |
drop(long num)
assertThat(ReactiveSeq.of(4,3,6,7).drop(2).toList(),equalTo(Arrays.asList(6,7))); |
default ListX<T> |
dropRight(int num)
Generate a new Traversable that drops the specified number elements from the take of this Traversable
|
default ListX<T> |
dropUntil(java.util.function.Predicate<? super T> p)
Generate a new Traversable that drops elements from this Traversable until the predicate holds
|
default ListX<T> |
dropWhile(java.util.function.Predicate<? super T> p)
Generate a new Traversable that drops elements from this Traversable as long as the predicate holds
|
static <T> ListX<T> |
empty() |
static <T> ListX<T> |
fill(long limit,
T s)
Generate a ListX from the provided value up toNested the provided limit number of times
|
default ListX<T> |
filter(java.util.function.Predicate<? super T> pred)
Keep only elements for which the supplied predicates hold
e.g.
|
default ListX<T> |
filterNot(java.util.function.Predicate<? super T> fn)
Remove any elements for which the predicate holds (inverse operation toNested filter)
e.g.
|
default <R> ListX<R> |
flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper)
Perform a flatMap operation on this collection.
|
default <R> ListX<R> |
flatMapP(java.util.function.Function<? super T,? extends org.reactivestreams.Publisher<? extends R>> fn) |
default <R> ListX<R> |
flatMapS(java.util.function.Function<? super T,? extends java.util.stream.Stream<? extends R>> fn) |
default <R1,R> ListX<R> |
forEach2(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1,
java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction)
Perform a two level nested internal iteration over this Stream and the
supplied reactiveStream
|
default <R1,R> ListX<R> |
forEach2(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1,
java.util.function.BiFunction<? super T,? super R1,java.lang.Boolean> filterFunction,
java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction)
Perform a two level nested internal iteration over this Stream and the
supplied reactiveStream
|
default <R1,R2,R> ListX<R> |
forEach3(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1,
java.util.function.BiFunction<? super T,? super R1,? extends java.lang.Iterable<R2>> stream2,
Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction)
Perform a three level nested internal iteration over this Stream and the
supplied streams
|
default <R1,R2,R> ListX<R> |
forEach3(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1,
java.util.function.BiFunction<? super T,? super R1,? extends java.lang.Iterable<R2>> stream2,
Fn3<? super T,? super R1,? super R2,java.lang.Boolean> filterFunction,
Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction)
Perform a three level nested internal iteration over this Stream and the
supplied streams
|
default <R1,R2,R3,R> |
forEach4(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1,
java.util.function.BiFunction<? super T,? super R1,? extends java.lang.Iterable<R2>> stream2,
Fn3<? super T,? super R1,? super R2,? extends java.lang.Iterable<R3>> stream3,
Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction)
Perform a three level nested internal iteration over this Stream and the
supplied streams
|
default <R1,R2,R3,R> |
forEach4(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1,
java.util.function.BiFunction<? super T,? super R1,? extends java.lang.Iterable<R2>> stream2,
Fn3<? super T,? super R1,? super R2,? extends java.lang.Iterable<R3>> stream3,
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)
Perform a three level nested internal iteration over this Stream and the
supplied streams
|
default <T1> ListX<T1> |
from(java.util.Collection<T1> c)
Conctruct an Extended Collection from a standard Collection
|
static <T> ListX<T> |
fromIterable(java.util.stream.Collector<T,?,java.util.List<T>> collector,
java.lang.Iterable<T> it) |
static <T> ListX<T> |
fromIterable(java.lang.Iterable<T> it) |
static <T> ListX<T> |
fromIterator(java.util.Iterator<T> it) |
static <T> ListX<T> |
fromPublisher(org.reactivestreams.Publisher<? extends T> publisher)
Construct a ListX from an Publisher
|
default <X> ListX<X> |
fromStream(ReactiveSeq<X> stream) |
static <T> ListX<T> |
generate(long limit,
java.util.function.Supplier<T> s)
Generate a ListX from the provided Supplier up toNested the provided limit number of times
|
<T> java.util.stream.Collector<T,?,java.util.List<T>> |
getCollector() |
default <K> ListX<org.jooq.lambda.tuple.Tuple2<K,ReactiveSeq<T>>> |
grouped(java.util.function.Function<? super T,? extends K> classifier)
Group this Traversable by the provided classifying function and collected by the provided Collector
|
default <K,A,D> ListX<org.jooq.lambda.tuple.Tuple2<K,D>> |
grouped(java.util.function.Function<? super T,? extends K> classifier,
java.util.stream.Collector<? super T,A,D> downstream)
Group this Traversable by the provided classifying function and collected by the provided Collector
|
default ListX<ListX<T>> |
grouped(int groupSize)
Group elements in a Stream
|
default <C extends java.util.Collection<? super T>> |
grouped(int size,
java.util.function.Supplier<C> supplier)
Batch elements in a Stream by size into a collection created by the
supplied factory
|
default ListX<ListX<T>> |
groupedStatefullyUntil(java.util.function.BiPredicate<ListX<? super T>,? super T> predicate)
Create Travesable of Lists where
each List is populated while the supplied bipredicate holds.
|
default ListX<ListX<T>> |
groupedUntil(java.util.function.Predicate<? super T> predicate)
Create a Traversable batched by List, where each batch is populated until
the predicate holds
|
default <C extends java.util.Collection<? super T>> |
groupedUntil(java.util.function.Predicate<? super T> predicate,
java.util.function.Supplier<C> factory)
Create a ReactiveSeq batched by a Collection, where each batch is populated
until the predicate holds
|
default ListX<ListX<T>> |
groupedWhile(java.util.function.Predicate<? super T> predicate)
Create a Traversable batched by List, where each batch is populated while
the predicate holds
|
default <C extends java.util.Collection<? super T>> |
groupedWhile(java.util.function.Predicate<? super T> predicate,
java.util.function.Supplier<C> factory)
Create a SequenceM batched by a Collection, where each batch is populated
while the predicate holds
|
static <T> java.util.stream.Collector<T,?,java.util.List<T>> |
immutableCollector() |
default ListX<T> |
insertAt(int pos,
T... values)
Insert data into a reactiveStream at given position
|
default ListX<T> |
insertAtS(int pos,
java.util.stream.Stream<T> stream)
Insert a Stream into the middle of this reactiveStream at the specified position
|
default ListX<T> |
intersperse(T value)
Returns a reactiveStream with a given value interspersed between any two values
of this reactiveStream.
|
static <T> ListX<T> |
iterate(long limit,
T seed,
java.util.function.UnaryOperator<T> f)
Create a ListX by iterative application of a function toNested an initial element up toNested the supplied limit number of times
|
default <W extends WitnessType<W>> |
liftM(W witness) |
default ListX<T> |
limit(long num)
assertThat(ReactiveSeq.of(4,3,6,7).limit(2).toList(),equalTo(Arrays.asList(4,3)); |
default ListX<T> |
limitLast(int num)
Limit results toNested the last x elements in a SequenceM
|
default ListX<T> |
limitUntil(java.util.function.Predicate<? super T> p)
Take elements from the Stream until the predicate returns true, after
which all elements are excluded.
|
default ListX<T> |
limitWhile(java.util.function.Predicate<? super T> p)
Take elements from the Stream while the predicate holds, once the
predicate returns false all subsequent elements are excluded
|
static <T> ListX<T> |
listX(ReactiveSeq<T> stream)
import static cyclops.stream.ReactiveSeq.range;
ListX<Integer> list = listX(range(10,20));
|
static <T> java.util.stream.Collector<T,?,ListX<T>> |
listXCollector() |
default <R> ListX<R> |
map(java.util.function.Function<? super T,? extends R> mapper)
Transform this functor using the supplied transformation function
|
default ListX<T> |
materialize() |
default ListX<T> |
minus(int pos)
Remove the element at the supplied index
|
default ListX<T> |
minus(java.lang.Object e)
Remove the specified element from this collection
|
default ListX<T> |
minusAll(java.util.Collection<?> list)
Remove all the specified elements from this collection
|
static <T> ListX<T> |
narrow(ListX<? extends T> listX)
Narrow a covariant List
|
static <T> ListX<T> |
narrowK(Higher<ListX.µ,T> list)
Convert the raw Higher Kinded Type for ListX types into the ListX type definition class
|
default ListX<T> |
notNull()
Filter elements retaining only values which are not null
|
static <T> ListX<T> |
of(T... values)
Construct a ListX from the provided values
|
default <U> ListX<U> |
ofType(java.lang.Class<? extends U> type)
Keep only those elements in a reactiveStream that are of a given type.
|
default ListX<T> |
onEmpty(T value)
If this Container instance is empty, create a new instance containing the provided value
|
default ListX<T> |
onEmptyGet(java.util.function.Supplier<? extends T> supplier)
If this Container instance is empty, create a new instance containing the value returned from the provided Supplier
|
default ListX<T> |
onEmptySwitch(java.util.function.Supplier<? extends java.util.List<T>> supplier)
Switch toNested container created by provided Supplier, if current Container empty
|
default <X extends java.lang.Throwable> |
onEmptyThrow(java.util.function.Supplier<? extends X> supplier)
If this container instance is empty, throw the exception returned by the provided Supplier
|
default ListX<T> |
peek(java.util.function.Consumer<? super T> c)
Peek at the current value of this Transformable, without transforming it
|
default ListX<ReactiveSeq<T>> |
permutations()
Generate the permutations based on values in the ExtendedTraversable.
|
default ListX<T> |
plus(int i,
T e)
Add the supplied element at the supplied index
|
default ListX<T> |
plus(T e)
Add an element to this Collection
|
default ListX<T> |
plusAll(java.util.Collection<? extends T> list)
Add all supplied elements to this Collection
|
default ListX<T> |
plusAll(int i,
java.util.Collection<? extends T> list)
Add all of the supplied elements at the supplied index
|
default ListX<T> |
plusInOrder(T e)
Add an element to the collection
|
default ListX<T> |
plusLoop(int max,
java.util.function.IntFunction<T> value) |
default ListX<T> |
plusLoop(java.util.function.Supplier<java.util.Optional<T>> supplier) |
default ListX<T> |
prepend(T... values)
Prepend given values toNested the skip of the Stream
|
default ListX<T> |
prepend(T value) |
default ListX<T> |
prependS(java.util.stream.Stream<? extends T> stream)
Prepend Stream toNested this ReactiveSeq
|
static ListX<java.lang.Integer> |
range(int start,
int end)
Create a ListX that contains the Integers between skip and take
|
static ListX<java.lang.Long> |
rangeLong(long start,
long end)
Create a ListX that contains the Longs between skip and take
|
default <EX extends java.lang.Throwable> |
recover(java.lang.Class<EX> exceptionClass,
java.util.function.Function<? super EX,? extends T> fn)
Recover from a particular exception type
|
default ListX<T> |
recover(java.util.function.Function<? super java.lang.Throwable,? extends T> fn)
Recover from an exception with an alternative value
|
default ListX<T> |
removeAll(T... values)
Remove all supplied elements from this filterable
|
default ListX<T> |
removeAllI(java.lang.Iterable<? extends T> it)
Remove all elements in the supplied Iterable from this filterable
|
default ListX<T> |
removeAllS(java.util.stream.Stream<? extends T> stream)
Remove all elements in the supplied Stream from this filterable
|
default ListX<T> |
retainAll(T... values)
Retain only the supplied elements in the returned Filters
|
default ListX<T> |
retainAllI(java.lang.Iterable<? extends T> it)
Retain only the supplied elements in the returned Filters
|
default ListX<T> |
retainAllS(java.util.stream.Stream<? extends T> seq)
Retain only the supplied elements in the returned Filters
|
default <R> ListX<R> |
retry(java.util.function.Function<? super T,? extends R> fn)
Retry a transformation if it fails.
|
default <R> ListX<R> |
retry(java.util.function.Function<? super T,? extends R> fn,
int retries,
long delay,
java.util.concurrent.TimeUnit timeUnit)
Retry a transformation if it fails.
|
default ListX<T> |
reverse()
Potentially efficient Stream reversal.
|
default ListX<T> |
scanLeft(Monoid<T> monoid)
Scan left using supplied Monoid
|
default <U> ListX<U> |
scanLeft(U seed,
java.util.function.BiFunction<? super U,? super T,? extends U> function)
Scan left
|
default ListX<T> |
scanRight(Monoid<T> monoid)
Scan right
|
default <U> ListX<U> |
scanRight(U identity,
java.util.function.BiFunction<? super T,? super U,? extends U> combiner)
Scan right
|
default ListX<T> |
shuffle() |
default ListX<T> |
shuffle(java.util.Random random) |
static <T> ListX<T> |
singleton(T value) |
int |
size() |
default ListX<T> |
skip(long num)
assertThat(ReactiveSeq.of(4,3,6,7).skip(2).toList(),equalTo(Arrays.asList(6,7))); |
default ListX<T> |
skipLast(int num)
assertThat(ReactiveSeq.of(1,2,3,4,5) .skipLast(2)
.collect(CyclopsCollectors.toList()),equalTo(Arrays.asList(1,2,3)));
|
default ListX<T> |
skipUntil(java.util.function.Predicate<? super T> p)
Drop elements from the Stream until the predicate returns true, after
which all elements are included
|
default ListX<T> |
skipWhile(java.util.function.Predicate<? super T> p)
SkipWhile drops elements from the Stream while the predicate holds, once
the predicte returns true all subsequent elements are included *
|
default ListX<T> |
slice(long from,
long to) |
default ListX<VectorX<T>> |
sliding(int windowSize)
Create a sliding view over this Sequence
|
default ListX<VectorX<T>> |
sliding(int windowSize,
int increment)
Create a sliding view over this Sequence
|
default ListX<T> |
sorted()
assertThat(ReactiveSeq.of(4,3,6,7)).sorted().toList(),equalTo(Arrays.asList(3,4,6,7))); |
default ListX<T> |
sorted(java.util.Comparator<? super T> c)
assertThat(ReactiveSeq.of(4,3,6,7).sorted((a,b) -> b-a).toList(),equalTo(Arrays.asList(7,6,4,3)));
|
default <U extends java.lang.Comparable<? super U>> |
sorted(java.util.function.Function<? super T,? extends U> function) |
default ReactiveSeq<T> |
stream() |
ListX<T> |
subList(int start,
int end)
Create a sub sequence between the two supplied index
|
default ListX<T> |
take(long num)
assertThat(ReactiveSeq.of(4,3,6,7).take(2).toList(),equalTo(Arrays.asList(4,3)); |
default ListX<T> |
takeRight(int num)
Generate a new Traversable that takes the specified number elements from the take of this Traversable
|
default ListX<T> |
takeUntil(java.util.function.Predicate<? super T> p)
Generate a new Traversable that takes elements from this Traversable until the predicate holds
|
default ListX<T> |
takeWhile(java.util.function.Predicate<? super T> p)
Generate a new Traversable that takes elements from this Traversable as long as the predicate holds
|
default <R> ListX<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
|
ListX<T> |
type(java.util.stream.Collector<T,?,java.util.List<T>> collector) |
static <U,T> ListX<T> |
unfold(U seed,
java.util.function.Function<? super U,java.util.Optional<org.jooq.lambda.tuple.Tuple2<T,U>>> unfolder)
Unfold a function into a ListX
|
default <R> ListX<R> |
unit(java.util.Collection<R> col)
Create a new instance of the same colleciton type from the supplied collection
|
default <R> ListX<R> |
unit(R value) |
default <R> ListX<R> |
unitIterator(java.util.Iterator<R> it)
Create an IterableFunctor instance of the same type from an Iterator
|
default ListX<T> |
with(int i,
T element)
Replace the value at the specifed index with the supplied value
|
ListX<T> |
withCollector(java.util.stream.Collector<T,?,java.util.List<T>> collector) |
default <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(java.lang.Iterable<? extends U> other)
Zip (merge) this collection with the supplied Iterable into a Colleciton containing Tuples
Each Tuple contains one element from this collection and one from the other
|
default <U,R> ListX<R> |
zip(java.lang.Iterable<? extends U> other,
java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zip (combine) this Zippable with the supplied Iterable using the supplied combining function
|
default <S,U> ListX<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
|
default <T2,T3,T4> ListX<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
|
default <U> ListX<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
|
default <U,R> ListX<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
|
default ListX<org.jooq.lambda.tuple.Tuple2<T,java.lang.Long>> |
zipWithIndex()
Add an index toNested the current Stream
|
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, sort, spliterator, toArray, toArray
reduce
mapToDouble, mapToInt, mapToLong, subscribe, traversable
zip, zip3, zip4, zipP, zipP, zipWith, zipWithP, zipWithS
groupedStatefullyUntilT, groupedT, groupedUntilT, groupedWhileT, slidingT, slidingT
fixedDelay, onePer, xPer
static <T> ListX<T> narrowK(Higher<ListX.µ,T> list)
deque
- HKT encoded list into a ListXdefault <W extends WitnessType<W>> ListT<W,T> liftM(W witness)
default AnyMSeq<Witness.list,T> anyM()
static ListX<java.lang.Integer> range(int start, int end)
start
- Number of range toNested skip fromend
- Number for range toNested take atstatic ListX<java.lang.Long> rangeLong(long start, long end)
start
- Number of range toNested skip fromend
- Number for range toNested take atstatic <U,T> ListX<T> unfold(U seed, java.util.function.Function<? super U,java.util.Optional<org.jooq.lambda.tuple.Tuple2<T,U>>> unfolder)
ListX.unfold(1,i->i<=6 ? Optional.of(Tuple.tuple(i,i+1)) : Optional.empty());
//(1,2,3,4,5)
seed
- Initial valueunfolder
- Iteratively applied function, terminated by an empty Optionalstatic <T> ListX<T> fill(long limit, T s)
limit
- Max number of elements toNested generates
- Value for ListX elementsstatic <T> ListX<T> generate(long limit, java.util.function.Supplier<T> s)
limit
- Max number of elements toNested generates
- Supplier toNested generate ListX elementsstatic <T> ListX<T> iterate(long limit, T seed, java.util.function.UnaryOperator<T> f)
limit
- Max number of elements toNested generateseed
- Initial elementf
- Iteratively applied toNested each element toNested generate the next elementdefault ListX<T> materialize()
materialize
in interface CollectionX<T>
default <R1,R2,R3,R> ListX<R> forEach4(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1, java.util.function.BiFunction<? super T,? super R1,? extends java.lang.Iterable<R2>> stream2, Fn3<? super T,? super R1,? super R2,? extends java.lang.Iterable<R3>> stream3, Fn4<? super T,? super R1,? super R2,? super R3,? extends R> yieldingFunction)
CollectionX
//collectionX [1,2]
collectionX.forEach4(a->ListX.range(10,13),
(a,b)->ListX.of(""+(a+b),"hello world"),
(a,b,c)->ListX.of(a,b,c)),
(a,b,c,d)->c+":"a+":"+b);
forEach4
in interface CollectionX<T>
stream1
- Nested Stream toNested iterate overstream2
- Nested Stream toNested iterate overstream3
- Nested Stream toNested iterate overyieldingFunction
- Function with pointers toNested the current element from both
Streams that generates the new elementsdefault <R1,R2,R3,R> ListX<R> forEach4(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1, java.util.function.BiFunction<? super T,? super R1,? extends java.lang.Iterable<R2>> stream2, Fn3<? super T,? super R1,? super R2,? extends java.lang.Iterable<R3>> stream3, 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)
CollectionX
//collectionX [1,2,3]
collectionX.forEach4(a->ListX.range(10,13),
(a,b)->ListX.of(""+(a+b),"hello world"),
(a,b,c)->ListX.of(a,b,c),
(a,b,c,d)-> c!=3,
(a,b,c)->c+":"a+":"+b);
forEach4
in interface CollectionX<T>
stream1
- Nested Stream toNested iterate overstream2
- Nested Stream toNested iterate overstream3
- Nested Stream toNested iterate overfilterFunction
- Filter toNested apply over elements before passing non-filtered
values toNested the yielding functionyieldingFunction
- Function with pointers toNested the current element from both
Streams that generates the new elementsdefault <R1,R2,R> ListX<R> forEach3(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1, java.util.function.BiFunction<? super T,? super R1,? extends java.lang.Iterable<R2>> stream2, Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction)
CollectionX
//collectionX [1,2]
collectionX.forEach3(a->IntStream.range(10,13),
(a,b)->Stream.of(""+(a+b),"hello world"),
(a,b,c)->c+":"a+":"+b);
//CollectionX[11:1:2,hello world:1:2,14:1:4,hello world:1:4,12:1:2,hello world:1:2,15:1:5,hello world:1:5]
forEach3
in interface CollectionX<T>
stream1
- Nested Stream toNested iterate overstream2
- Nested Stream toNested iterate overyieldingFunction
- Function with pointers toNested the current element from both
Streams that generates the new elementsdefault <R1,R2,R> ListX<R> forEach3(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1, java.util.function.BiFunction<? super T,? super R1,? extends java.lang.Iterable<R2>> stream2, Fn3<? super T,? super R1,? super R2,java.lang.Boolean> filterFunction, Fn3<? super T,? super R1,? super R2,? extends R> yieldingFunction)
CollectionX
//collectionX [1,2,3]
collectionX.forEach3(a->ListX.range(10,13),
(a,b)->Stream.of(""+(a+b),"hello world"),
(a,b,c)-> c!=3,
(a,b,c)->c+":"a+":"+b);
//CollectionX[11:1:2,hello world:1:2,14:1:4,hello world:1:4,12:1:2,hello world:1:2,15:1:5,hello world:1:5]
forEach3
in interface CollectionX<T>
stream1
- Nested Stream toNested iterate overstream2
- Nested Stream toNested iterate overfilterFunction
- Filter toNested apply over elements before passing non-filtered
values toNested the yielding functionyieldingFunction
- Function with pointers toNested the current element from both
Streams that generates the new elementsdefault <R1,R> ListX<R> forEach2(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1, java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction)
CollectionX
//collectionX [1,2,3]
collectionX.of(1,2,3).forEach2(a->ListX.range(10,13),
(a,b)->a+b);
//ReactiveSeq[11,14,12,15,13,16]
forEach2
in interface CollectionX<T>
stream1
- Nested Iterable toNested iterate overyieldingFunction
- Function with pointers toNested the current element from both
Streams that generates the new elementsdefault <R1,R> ListX<R> forEach2(java.util.function.Function<? super T,? extends java.lang.Iterable<R1>> stream1, java.util.function.BiFunction<? super T,? super R1,java.lang.Boolean> filterFunction, java.util.function.BiFunction<? super T,? super R1,? extends R> yieldingFunction)
CollectionX
//collectionX [1,2,3]
collectionX.of(1,2,3).forEach2(a->ListX.range(10,13),
(a,b)-> a<3 && b>10,
(a,b)->a+b);
//CollectionX[14,15]
forEach2
in interface CollectionX<T>
stream1
- Nested Stream toNested iterate overfilterFunction
- Filter toNested apply over elements before passing non-filtered
values toNested the yielding functionyieldingFunction
- Function with pointers toNested the current element from both
Streams that generates the new elementsstatic <T> java.util.stream.Collector<T,?,ListX<T>> listXCollector()
static <T> java.util.stream.Collector<T,?,java.util.List<T>> defaultCollector()
static <T> java.util.stream.Collector<T,?,java.util.List<T>> immutableCollector()
static <T> ListX<T> empty()
@SafeVarargs static <T> ListX<T> of(T... values)
ListX<Integer> deque = ListX.of(1,2,3,4);
values
- toNested construct a Deque fromstatic <T> ListX<T> fromIterator(java.util.Iterator<T> it)
static <T> ListX<T> singleton(T value)
static <T> ListX<T> fromPublisher(org.reactivestreams.Publisher<? extends T> publisher)
publisher
- toNested construct ListX fromstatic <T> ListX<T> listX(ReactiveSeq<T> stream)
import static cyclops.stream.ReactiveSeq.range;
ListX<Integer> list = listX(range(10,20));
T
- ListX generated from Streamstream
- To create ListX fromstatic <T> ListX<T> fromIterable(java.lang.Iterable<T> it)
static <T> ListX<T> fromIterable(java.util.stream.Collector<T,?,java.util.List<T>> collector, java.lang.Iterable<T> it)
default ListX<T> take(long num)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).take(2).toList(),equalTo(Arrays.asList(4,3));
take
in interface CollectionX<T>
take
in interface Traversable<T>
num
- Limit element size toNested numdefault ListX<T> drop(long num)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).drop(2).toList(),equalTo(Arrays.asList(6,7)));
drop
in interface CollectionX<T>
drop
in interface Traversable<T>
num
- Number of elemenets toNested dropdefault <R> ListX<R> coflatMap(java.util.function.Function<? super ListX<T>,? extends R> fn)
ListX.of(1,2,3)
.map(i->i*2)
.coflatMap(s -> s.reduce(0,(a,b)->a+b))
//ListX[12]
fn
- mapping functiondefault <R> ListX<R> unit(java.util.Collection<R> col)
FluentCollectionX
unit
in interface FluentCollectionX<T>
col
- Collection data to populate the new collectiondefault <R> ListX<R> unit(R value)
default <R> ListX<R> unitIterator(java.util.Iterator<R> it)
Traversable
ReactiveSeq<Integer> newSeq = seq.unitIterable(myIterator);
unitIterator
in interface Traversable<T>
it
- Iterator toNested create new IterableFunctor fromdefault ReactiveSeq<T> stream()
stream
in interface java.util.Collection<T>
stream
in interface CollectionX<T>
stream
in interface ExtendedTraversable<T>
stream
in interface FoldableTraversable<T>
stream
in interface Folds<T>
stream
in interface Sequential<T>
stream
in interface TransformerTraversable<T>
stream
in interface Traversable<T>
<T> java.util.stream.Collector<T,?,java.util.List<T>> getCollector()
default <T1> ListX<T1> from(java.util.Collection<T1> c)
CollectionX
from
in interface CollectionX<T>
c
- Collection toNested extenddefault <X> ListX<X> fromStream(ReactiveSeq<X> stream)
fromStream
in interface LazyCollectionX<T>
stream
- Create a MultableCollectionX from a Streamdefault ListX<T> reverse()
Traversable
assertThat( of(1, 2, 3).reverse().toList(),
equalTo(asList(3, 2, 1)));
reverse
in interface CollectionX<T>
reverse
in interface LazyCollectionX<T>
reverse
in interface Traversable<T>
default ListX<T> combine(java.util.function.BiPredicate<? super T,? super T> predicate, java.util.function.BinaryOperator<T> op)
ListX.of(1,1,2,3)
.combine((a, b)->a.equals(b),Semigroups.intSum)
.to()
.listX(Conversion.LAZY)
//ListX(3,4)
combine
in interface CollectionX<T>
combine
in interface LazyCollectionX<T>
combine
in interface Traversable<T>
predicate
- Test toNested see if two neighbors should be joinedop
- Reducer toNested combine neighborsdefault ListX<T> combine(Monoid<T> op, java.util.function.BiPredicate<? super T,? super T> predicate)
Traversable
ReactiveSeq.of(1,1,2,3)
.combine(Monoids.intMult,(a, b)->a.equals(b))
.listX()
//ListX(1)
Simalar toNested @see Traversable.combine(BiPredicate, BinaryOperator)
but differs in that the first comparison is always toNested the Monoid zero
This allows us toNested terminate with just a single valuecombine
in interface Traversable<T>
op
- Monoid toNested combine neighbourspredicate
- Test toNested see if two neighbours should be joined. The first parameter toNested the bi-predicate is the currently
accumulated result and the second is the next elementdefault ListX<T> filter(java.util.function.Predicate<? super T> pred)
Filters
of(1,2,3).filter(i->i>2);
//[3]
filter
in interface CollectionX<T>
filter
in interface FilterableTransformable<T>
filter
in interface Filters<T>
filter
in interface IndexedSequenceX<T>
filter
in interface LazyCollectionX<T>
pred
- toNested filter elements by, retaining matchesdefault <R> ListX<R> map(java.util.function.Function<? super T,? extends R> mapper)
Transformable
of(1,2,3).map(i->i*2)
//[2,4,6]
map
in interface CollectionX<T>
map
in interface FilterableTransformable<T>
map
in interface IndexedSequenceX<T>
map
in interface LazyCollectionX<T>
map
in interface Transformable<T>
mapper
- Transformation functiondefault <R> ListX<R> flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper)
CollectionX
flatMap
in interface CollectionX<T>
flatMap
in interface IndexedSequenceX<T>
flatMap
in interface LazyCollectionX<T>
mapper
- Transformation function toNested be applied (and flattened)default ListX<T> limit(long num)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).limit(2).toList(),equalTo(Arrays.asList(4,3));
limit
in interface CollectionX<T>
limit
in interface LazyCollectionX<T>
limit
in interface Traversable<T>
num
- Limit element size toNested numdefault ListX<T> skip(long num)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).skip(2).toList(),equalTo(Arrays.asList(6,7)));
skip
in interface CollectionX<T>
skip
in interface LazyCollectionX<T>
skip
in interface Traversable<T>
num
- Number of elemenets toNested skipdefault ListX<T> takeRight(int num)
Traversable
ListX.of(1,2,3).takeRight(2);
//[2,3]
takeRight
in interface CollectionX<T>
takeRight
in interface LazyCollectionX<T>
takeRight
in interface Traversable<T>
num
- Take this number of elements from the take of this Traversabledefault ListX<T> dropRight(int num)
Traversable
ListX.of(1,2,3).dropRight(2);
//[1]
dropRight
in interface CollectionX<T>
dropRight
in interface LazyCollectionX<T>
dropRight
in interface Traversable<T>
num
- Drop this number of elements from the take of this Traversabledefault ListX<T> takeWhile(java.util.function.Predicate<? super T> p)
Traversable
ListX.of(1,2,3).takeWhile(i<3);
//[1,2]
takeWhile
in interface CollectionX<T>
takeWhile
in interface LazyCollectionX<T>
takeWhile
in interface Traversable<T>
p
- Predicate toNested determine when values should be takendefault ListX<T> dropWhile(java.util.function.Predicate<? super T> p)
Traversable
ListX.of(1,2,3).dropWhile(i<3);
//[3]
dropWhile
in interface CollectionX<T>
dropWhile
in interface LazyCollectionX<T>
dropWhile
in interface Traversable<T>
p
- Predicate toNested determine when values should be droppeddefault ListX<T> takeUntil(java.util.function.Predicate<? super T> p)
Traversable
ListX.of(1,2,3).takeUntil(i<2);
//[1,2]
takeUntil
in interface CollectionX<T>
takeUntil
in interface LazyCollectionX<T>
takeUntil
in interface Traversable<T>
p
- Predicate toNested determine when values should be taken untildefault ListX<T> dropUntil(java.util.function.Predicate<? super T> p)
Traversable
ListX.of(1,2,3).dropUntil(i>2);
//[3]
dropUntil
in interface CollectionX<T>
dropUntil
in interface LazyCollectionX<T>
dropUntil
in interface Traversable<T>
p
- Predicate toNested determine when values should be droppeddefault <R> ListX<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 CollectionX<T>
trampoline
in interface LazyCollectionX<T>
trampoline
in interface Transformable<T>
mapper
- TCO Transformation functiondefault ListX<T> slice(long from, long to)
slice
in interface CollectionX<T>
slice
in interface LazyCollectionX<T>
slice
in interface Traversable<T>
default <U extends java.lang.Comparable<? super U>> ListX<T> sorted(java.util.function.Function<? super T,? extends U> function)
sorted
in interface CollectionX<T>
sorted
in interface LazyCollectionX<T>
sorted
in interface Traversable<T>
default ListX<ListX<T>> grouped(int groupSize)
Traversable
List<List<Integer>> list = ReactiveSeq.of(1, 2, 3, 4, 5, 6).grouped(3).collect(CyclopsCollectors.toList());
assertThat(list.get(0), hasItems(1, 2, 3));
assertThat(list.get(1), hasItems(4, 5, 6));
grouped
in interface CollectionX<T>
grouped
in interface LazyCollectionX<T>
grouped
in interface Traversable<T>
groupSize
- Size of each Groupdefault <K,A,D> ListX<org.jooq.lambda.tuple.Tuple2<K,D>> grouped(java.util.function.Function<? super T,? extends K> classifier, java.util.stream.Collector<? super T,A,D> downstream)
Traversable
grouped
in interface CollectionX<T>
grouped
in interface LazyCollectionX<T>
grouped
in interface Traversable<T>
classifier
- Grouping functiondownstream
- Collector toNested create the grouping collectiondefault <K> ListX<org.jooq.lambda.tuple.Tuple2<K,ReactiveSeq<T>>> grouped(java.util.function.Function<? super T,? extends K> classifier)
Traversable
grouped
in interface CollectionX<T>
grouped
in interface LazyCollectionX<T>
grouped
in interface Traversable<T>
classifier
- Grouping functiondefault <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> zip(java.lang.Iterable<? extends U> other)
CollectionX
zip
in interface CollectionX<T>
zip
in interface LazyCollectionX<T>
zip
in interface Zippable<T>
other
- Collection toNested merge with this onedefault <U,R> ListX<R> zip(java.lang.Iterable<? extends U> other, java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zippable
zip
in interface CollectionX<T>
zip
in interface LazyCollectionX<T>
zip
in interface Traversable<T>
zip
in interface Zippable<T>
other
- toNested zip withzipper
- Zip functiondefault <U,R> ListX<R> zipS(java.util.stream.Stream<? extends U> other, java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zippable
zipS
in interface CollectionX<T>
zipS
in interface LazyCollectionX<T>
zipS
in interface Zippable<T>
other
- Stream toNested combine withzipper
- Zip / combining functiondefault ListX<VectorX<T>> sliding(int windowSize)
Traversable
List<List<Integer>> list = ReactiveSeq.of(1, 2, 3, 4, 5, 6).sliding(2).collect(CyclopsCollectors.toList());
assertThat(list.get(0), hasItems(1, 2));
assertThat(list.get(1), hasItems(2, 3));
sliding
in interface CollectionX<T>
sliding
in interface LazyCollectionX<T>
sliding
in interface Traversable<T>
windowSize
- Size of sliding windowdefault ListX<VectorX<T>> sliding(int windowSize, int increment)
Traversable
List<List<Integer>> list = ReactiveSeq.of(1, 2, 3, 4, 5, 6).sliding(3, 2).collect(CyclopsCollectors.toList());
assertThat(list.get(0), hasItems(1, 2, 3));
assertThat(list.get(1), hasItems(3, 4, 5));
sliding
in interface CollectionX<T>
sliding
in interface LazyCollectionX<T>
sliding
in interface Traversable<T>
windowSize
- number of elements in each batchincrement
- for each windowdefault ListX<T> scanLeft(Monoid<T> monoid)
Traversable
assertEquals(asList("", "a", "ab", "abc"),ReactiveSeq.of("a", "b", "c")
.scanLeft(Reducers.toString("")).toList());
scanLeft
in interface CollectionX<T>
scanLeft
in interface LazyCollectionX<T>
scanLeft
in interface Traversable<T>
default <U> ListX<U> scanLeft(U seed, java.util.function.BiFunction<? super U,? super T,? extends U> function)
Traversable
assertThat(of("a", "b", "c").scanLeft("", String::concat).toList().size(),
is(4));
scanLeft
in interface CollectionX<T>
scanLeft
in interface LazyCollectionX<T>
scanLeft
in interface Traversable<T>
default ListX<T> scanRight(Monoid<T> monoid)
Traversable
assertThat(of("a", "b", "c").scanRight(Monoid.of("", String::concat)).toList().size(),
is(asList("", "c", "bc", "abc").size()));
scanRight
in interface CollectionX<T>
scanRight
in interface LazyCollectionX<T>
scanRight
in interface Traversable<T>
default <U> ListX<U> scanRight(U identity, java.util.function.BiFunction<? super T,? super U,? extends U> combiner)
Traversable
assertThat(of("a", "ab", "abc").map(str->str.length()).scanRight(0, (t, u) -> u + t).toList().size(),
is(asList(0, 3, 5, 6).size()));
scanRight
in interface CollectionX<T>
scanRight
in interface LazyCollectionX<T>
scanRight
in interface Traversable<T>
default ListX<T> with(int i, T element)
IndexedSequenceX
with
in interface IndexedSequenceX<T>
with
in interface MutableSequenceX<T>
i
- Index toNested replace value atelement
- Value toNested useListX<T> subList(int start, int end)
IndexedSequenceX
subList
in interface IndexedSequenceX<T>
subList
in interface java.util.List<T>
subList
in interface MutableSequenceX<T>
start
- Index of our sub sequence (inclusive)end
- Index of our sub sequence (exclusive)default ListX<T> plus(T e)
FluentCollectionX
plus
in interface FluentCollectionX<T>
plus
in interface IndexedSequenceX<T>
plus
in interface LazyCollectionX<T>
plus
in interface MutableSequenceX<T>
e
- Element to adddefault ListX<T> plusAll(java.util.Collection<? extends T> list)
FluentCollectionX
plusAll
in interface FluentCollectionX<T>
plusAll
in interface IndexedSequenceX<T>
plusAll
in interface LazyCollectionX<T>
plusAll
in interface MutableSequenceX<T>
list
- of elements to adddefault ListX<T> minus(int pos)
IndexedSequenceX
minus
in interface IndexedSequenceX<T>
minus
in interface MutableSequenceX<T>
pos
- Index at which toNested remvoe elementdefault ListX<T> minus(java.lang.Object e)
FluentCollectionX
minus
in interface FluentCollectionX<T>
minus
in interface IndexedSequenceX<T>
minus
in interface LazyCollectionX<T>
minus
in interface MutableSequenceX<T>
e
- Element to removedefault ListX<T> minusAll(java.util.Collection<?> list)
FluentCollectionX
minusAll
in interface FluentCollectionX<T>
minusAll
in interface IndexedSequenceX<T>
minusAll
in interface LazyCollectionX<T>
minusAll
in interface MutableSequenceX<T>
list
- of elements to removedefault ListX<T> plus(int i, T e)
IndexedSequenceX
plus
in interface IndexedSequenceX<T>
plus
in interface MutableSequenceX<T>
i
- Index toNested add element ate
- Element toNested adddefault ListX<T> plusAll(int i, java.util.Collection<? extends T> list)
IndexedSequenceX
plusAll
in interface IndexedSequenceX<T>
plusAll
in interface MutableSequenceX<T>
i
- Index toNested add element atlist
- Collection of elements toNested addint size()
default ListX<T> plusInOrder(T e)
FluentCollectionX
plusInOrder
in interface FluentCollectionX<T>
e
- Element to adddefault ListX<T> peek(java.util.function.Consumer<? super T> c)
Transformable
of(1,2,3).map(System.out::println)
1
2
3
peek
in interface CollectionX<T>
peek
in interface Transformable<T>
c
- Consumer that recieves each element from this Transformabledefault ListX<T> cycle(long times)
Traversable
ReactiveSeq.of(1,2,2)
.cycle(3)
.collect(CyclopsCollectors.toList());
//List[1,2,2,1,2,2,1,2,2]
cycle
in interface CollectionX<T>
cycle
in interface LazyCollectionX<T>
cycle
in interface Traversable<T>
times
- Times values should be repeated within a Streamdefault ListX<T> cycle(Monoid<T> m, long times)
Traversable
List<Integer> list = ReactiveSeq.of(1,2,2))
.cycle(Reducers.toCountInt(),3)
.collect(CyclopsCollectors.toList());
//List[3,3,3];
cycle
in interface CollectionX<T>
cycle
in interface LazyCollectionX<T>
cycle
in interface Traversable<T>
m
- Monoid toNested be used in reductiontimes
- Number of times value should be repeateddefault ListX<T> cycleWhile(java.util.function.Predicate<? super T> predicate)
Traversable
MutableInt count = MutableInt.of(0);
ReactiveSeq.of(1, 2, 2).cycleWhile(next -> count++ < 6).collect(CyclopsCollectors.toList());
// List(1,2,2,1,2,2)
cycleWhile
in interface CollectionX<T>
cycleWhile
in interface LazyCollectionX<T>
cycleWhile
in interface Traversable<T>
predicate
- repeat while truedefault ListX<T> cycleUntil(java.util.function.Predicate<? super T> predicate)
Traversable
MutableInt count =MutableInt.of(0);
ReactiveSeq.of(1,2,2)
.cycleUntil(next -> count.get()>6)
.peek(i-> count.mutate(i->i+1))
.collect(CyclopsCollectors.toList());
//List[1,2,2,1,2,2,1]
cycleUntil
in interface CollectionX<T>
cycleUntil
in interface LazyCollectionX<T>
cycleUntil
in interface Traversable<T>
predicate
- repeat while truedefault <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> zipS(java.util.stream.Stream<? extends U> other)
Traversable
zipS
in interface CollectionX<T>
zipS
in interface LazyCollectionX<T>
zipS
in interface Traversable<T>
zipS
in interface Zippable<T>
other
- Stream toNested combine withdefault <S,U> ListX<org.jooq.lambda.tuple.Tuple3<T,S,U>> zip3(java.lang.Iterable<? extends S> second, java.lang.Iterable<? extends U> third)
Traversable
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']]
zip3
in interface CollectionX<T>
zip3
in interface LazyCollectionX<T>
zip3
in interface Traversable<T>
zip3
in interface Zippable<T>
default <T2,T3,T4> ListX<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)
Traversable
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"]]
zip4
in interface CollectionX<T>
zip4
in interface LazyCollectionX<T>
zip4
in interface Traversable<T>
zip4
in interface Zippable<T>
default ListX<org.jooq.lambda.tuple.Tuple2<T,java.lang.Long>> zipWithIndex()
Traversable
assertEquals(asList(new Tuple2("a", 0L), new Tuple2("b", 1L)), of("a", "b").zipWithIndex().toList());
zipWithIndex
in interface CollectionX<T>
zipWithIndex
in interface LazyCollectionX<T>
zipWithIndex
in interface Traversable<T>
default ListX<T> sorted()
Traversable
assertThat(ReactiveSeq.of(4,3,6,7)).sorted().toList(),equalTo(Arrays.asList(3,4,6,7)));
sorted
in interface CollectionX<T>
sorted
in interface LazyCollectionX<T>
sorted
in interface Traversable<T>
default ListX<T> sorted(java.util.Comparator<? super T> c)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).sorted((a,b) -> b-a).toList(),equalTo(Arrays.asList(7,6,4,3)));
sorted
in interface CollectionX<T>
sorted
in interface LazyCollectionX<T>
sorted
in interface Traversable<T>
c
- Compartor toNested sort withdefault ListX<T> skipWhile(java.util.function.Predicate<? super T> p)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).sorted().skipWhile(i->i<6).toList(),equalTo(Arrays.asList(6,7)));
skipWhile
in interface CollectionX<T>
skipWhile
in interface LazyCollectionX<T>
skipWhile
in interface Traversable<T>
p
- Predicate toNested skip while truedefault ListX<T> skipUntil(java.util.function.Predicate<? super T> p)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).skipUntil(i->i==6).toList(),equalTo(Arrays.asList(6,7)));
skipUntil
in interface CollectionX<T>
skipUntil
in interface LazyCollectionX<T>
skipUntil
in interface Traversable<T>
p
- Predicate toNested skip until truedefault ListX<T> shuffle()
shuffle
in interface CollectionX<T>
shuffle
in interface LazyCollectionX<T>
shuffle
in interface Traversable<T>
default ListX<T> skipLast(int num)
Traversable
skipLast
in interface CollectionX<T>
skipLast
in interface LazyCollectionX<T>
skipLast
in interface Traversable<T>
default ListX<T> shuffle(java.util.Random random)
shuffle
in interface CollectionX<T>
shuffle
in interface LazyCollectionX<T>
shuffle
in interface Traversable<T>
default ListX<ReactiveSeq<T>> permutations()
ExtendedTraversable
permutations
in interface CollectionX<T>
permutations
in interface ExtendedTraversable<T>
permutations
in interface LazyCollectionX<T>
default ListX<ReactiveSeq<T>> combinations(int size)
ExtendedTraversable
ExtendedTraversable<Integer> reactiveStream = ReactiveSeq.of(1,2,3);
reactiveStream.combinations(2)
//ReactiveSeq[ReactiveSeq[1,2],ReactiveSeq[1,3],ReactiveSeq[2,3]]
combinations
in interface CollectionX<T>
combinations
in interface ExtendedTraversable<T>
combinations
in interface LazyCollectionX<T>
size
- of combinationsdefault ListX<ReactiveSeq<T>> combinations()
ExtendedTraversable
ReactiveSeq.of(1,2,3).combinations()
//ReactiveSeq[ReactiveSeq[],ReactiveSeq[1],ReactiveSeq[2],ReactiveSeq[3].ReactiveSeq[1,2],ReactiveSeq[1,3],ReactiveSeq[2,3]
,ReactiveSeq[1,2,3]]
combinations
in interface CollectionX<T>
combinations
in interface ExtendedTraversable<T>
combinations
in interface LazyCollectionX<T>
default <U> ListX<U> cast(java.lang.Class<? extends U> type)
Transformable
ClassCastException
.
// ClassCastException ReactiveSeq.of(1, "a", 2, "b", 3).cast(Integer.class)cast
in interface CollectionX<T>
cast
in interface LazyCollectionX<T>
cast
in interface Transformable<T>
default ListX<T> distinct()
distinct
in interface CollectionX<T>
distinct
in interface LazyCollectionX<T>
distinct
in interface Traversable<T>
default ListX<T> limitWhile(java.util.function.Predicate<? super T> p)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).sorted().limitWhile(i->i<6).toList(),equalTo(Arrays.asList(3,4)));
limitWhile
in interface CollectionX<T>
limitWhile
in interface LazyCollectionX<T>
limitWhile
in interface Traversable<T>
p
- Limit while predicate is truedefault ListX<T> limitUntil(java.util.function.Predicate<? super T> p)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).limitUntil(i->i==6).toList(),equalTo(Arrays.asList(4,3)));
limitUntil
in interface CollectionX<T>
limitUntil
in interface LazyCollectionX<T>
limitUntil
in interface Traversable<T>
p
- Limit until predicate is truedefault ListX<T> intersperse(T value)
Traversable
intersperse
in interface CollectionX<T>
intersperse
in interface LazyCollectionX<T>
intersperse
in interface Traversable<T>
default ListX<T> limitLast(int num)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4,5)
.limitLast(2)
.collect(CyclopsCollectors.toList()),equalTo(Arrays.asList(4,5)));
limitLast
in interface CollectionX<T>
limitLast
in interface LazyCollectionX<T>
limitLast
in interface Traversable<T>
num
- of elements toNested return (last elements)default ListX<T> onEmpty(T value)
OnEmpty
onEmpty
in interface CollectionX<T>
onEmpty
in interface LazyCollectionX<T>
onEmpty
in interface OnEmpty<T>
onEmpty
in interface Traversable<T>
default ListX<T> onEmptyGet(java.util.function.Supplier<? extends T> supplier)
OnEmpty
onEmptyGet
in interface CollectionX<T>
onEmptyGet
in interface LazyCollectionX<T>
onEmptyGet
in interface OnEmpty<T>
onEmptyGet
in interface Traversable<T>
supplier
- toNested determine new value for containerdefault <X extends java.lang.Throwable> ListX<T> onEmptyThrow(java.util.function.Supplier<? extends X> supplier)
OnEmpty
onEmptyThrow
in interface CollectionX<T>
onEmptyThrow
in interface LazyCollectionX<T>
onEmptyThrow
in interface OnEmpty<T>
onEmptyThrow
in interface Traversable<T>
supplier
- toNested create exception fromdefault <U> ListX<U> ofType(java.lang.Class<? extends U> type)
Filters
// (1, 2, 3) ReactiveSeq.of(1, "a", 2, "b",3).ofType(Integer.class)
default ListX<T> filterNot(java.util.function.Predicate<? super T> fn)
Filters
of(1,2,3).filter(i->i>2);
//[1,2]
filterNot
in interface CollectionX<T>
filterNot
in interface Filters<T>
filterNot
in interface LazyCollectionX<T>
fn
- toNested filter elements by, retaining matchesdefault ListX<T> notNull()
Filters
of(1,2,null,4).nonNull();
//[1,2,4]
notNull
in interface CollectionX<T>
notNull
in interface Filters<T>
notNull
in interface LazyCollectionX<T>
default ListX<T> removeAllS(java.util.stream.Stream<? extends T> stream)
IterableFilterable
removeAllS
in interface CollectionX<T>
removeAllS
in interface IterableFilterable<T>
removeAllS
in interface LazyCollectionX<T>
stream
- of elements toNested removedefault ListX<T> removeAllI(java.lang.Iterable<? extends T> it)
IterableFilterable
removeAllI
in interface CollectionX<T>
removeAllI
in interface IterableFilterable<T>
removeAllI
in interface LazyCollectionX<T>
it
- an Iterable of elements toNested removedefault ListX<T> removeAll(T... values)
IterableFilterable
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface LazyCollectionX<T>
values
- toNested removedefault ListX<T> retainAllI(java.lang.Iterable<? extends T> it)
IterableFilterable
retainAllI
in interface CollectionX<T>
retainAllI
in interface IterableFilterable<T>
retainAllI
in interface LazyCollectionX<T>
it
- Iterable of elements toNested retaindefault ListX<T> retainAllS(java.util.stream.Stream<? extends T> seq)
IterableFilterable
retainAllS
in interface CollectionX<T>
retainAllS
in interface IterableFilterable<T>
retainAllS
in interface LazyCollectionX<T>
seq
- of elements toNested retaindefault ListX<T> retainAll(T... values)
IterableFilterable
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface LazyCollectionX<T>
values
- elements toNested retaindefault <C extends java.util.Collection<? super T>> ListX<C> grouped(int size, java.util.function.Supplier<C> supplier)
Traversable
assertThat(ReactiveSeq.of(1,1,1,1,1,1)
.batchBySize(3,()->new TreeSet<>())
.toList()
.get(0)
.size(),is(1));
grouped
in interface CollectionX<T>
grouped
in interface LazyCollectionX<T>
grouped
in interface Traversable<T>
size
- batch sizesupplier
- Collection factorydefault ListX<ListX<T>> groupedUntil(java.util.function.Predicate<? super T> predicate)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4,5,6)
.groupedUntil(i->i%3==0)
.toList()
.size(),equalTo(2));
groupedUntil
in interface CollectionX<T>
groupedUntil
in interface LazyCollectionX<T>
groupedUntil
in interface Traversable<T>
predicate
- Batch until predicate holds, apply open next batchdefault ListX<ListX<T>> groupedWhile(java.util.function.Predicate<? super T> predicate)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4,5,6)
.groupedWhile(i->i%3!=0)
.toList().size(),equalTo(2));
groupedWhile
in interface CollectionX<T>
groupedWhile
in interface LazyCollectionX<T>
groupedWhile
in interface Traversable<T>
predicate
- Batch while predicate holds, apply open next batchdefault <C extends java.util.Collection<? super T>> ListX<C> groupedWhile(java.util.function.Predicate<? super T> predicate, java.util.function.Supplier<C> factory)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4,5,6)
.batchWhile(i->i%3!=0)
.toList()
.size(),equalTo(2));
groupedWhile
in interface CollectionX<T>
groupedWhile
in interface LazyCollectionX<T>
groupedWhile
in interface Traversable<T>
predicate
- Batch while predicate holds, apply open next batchfactory
- Collection factorydefault <C extends java.util.Collection<? super T>> ListX<C> groupedUntil(java.util.function.Predicate<? super T> predicate, java.util.function.Supplier<C> factory)
Traversable
ReactiveSeq.of(1,2,3,4,5,6)
.groupedUntil(i->i%3!=0)
.toList()
//2
groupedUntil
in interface CollectionX<T>
groupedUntil
in interface LazyCollectionX<T>
groupedUntil
in interface Traversable<T>
predicate
- Batch until predicate holds, apply open next batchfactory
- Collection factorydefault ListX<ListX<T>> groupedStatefullyUntil(java.util.function.BiPredicate<ListX<? super T>,? super T> predicate)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4,5,6)
.groupedStatefullyUntil((s,i)->s.contains(4) ? true : false)
.toList().size(),equalTo(5));
groupedStatefullyUntil
in interface CollectionX<T>
groupedStatefullyUntil
in interface LazyCollectionX<T>
groupedStatefullyUntil
in interface Traversable<T>
predicate
- Window while truedefault ListX<T> onEmptySwitch(java.util.function.Supplier<? extends java.util.List<T>> supplier)
OnEmptySwitch
ListX.empty().onEmptySwitch(()->ListX.of(1));
onEmptySwitch
in interface OnEmptySwitch<T,java.util.List<T>>
supplier
- toNested create replacement containerdefault <R> ListX<R> retry(java.util.function.Function<? super T,? extends R> fn)
Transformable
given(serviceMock.apply(anyInt())).willThrow(
new RuntimeException(new SocketException("First")),
new RuntimeException(new IOException("Second"))).willReturn(
"42");
String result = ReactiveSeq.of( 1, 2, 3)
.retry(serviceMock)
.firstValue();
//result = 42
retry
in interface Transformable<T>
fn
- Function toNested retry if failsdefault <R> ListX<R> retry(java.util.function.Function<? super T,? extends R> fn, int retries, long delay, java.util.concurrent.TimeUnit timeUnit)
Transformable
given(serviceMock.apply(anyInt())).willThrow(
new RuntimeException(new SocketException("First")),
new RuntimeException(new IOException("Second"))).willReturn(
"42");
String result = ReactiveSeq.of( 1, 2, 3)
.retry(serviceMock, 7, 2, TimeUnit.SECONDS)
.firstValue();
//result = 42
retry
in interface Transformable<T>
fn
- Function toNested retry if failsretries
- Number of retriesdelay
- Delay in TimeUnitstimeUnit
- TimeUnit toNested use for delaydefault <R> ListX<R> flatMapS(java.util.function.Function<? super T,? extends java.util.stream.Stream<? extends R>> fn)
flatMapS
in interface CollectionX<T>
flatMapS
in interface LazyCollectionX<T>
default <R> ListX<R> flatMapP(java.util.function.Function<? super T,? extends org.reactivestreams.Publisher<? extends R>> fn)
flatMapP
in interface CollectionX<T>
flatMapP
in interface LazyCollectionX<T>
default ListX<T> prependS(java.util.stream.Stream<? extends T> stream)
Traversable
List<String> result = ReactiveSeq.of(1, 2, 3)
.prependS(of(100, 200, 300))
.map(it -> it + "!!")
.collect(CyclopsCollectors.toList());
assertThat(result, equalTo(Arrays.asList("100!!", "200!!", "300!!", "1!!", "2!!", "3!!")));
prependS
in interface LazyCollectionX<T>
prependS
in interface Traversable<T>
stream
- toNested Prependdefault ListX<T> append(T... values)
Traversable
List<String> result = ReactiveSeq.of(1, 2, 3).append(100, 200, 300).map(it -> it + "!!").collect(CyclopsCollectors.toList());
assertThat(result, equalTo(Arrays.asList("1!!", "2!!", "3!!", "100!!", "200!!", "300!!"))); *
append
in interface LazyCollectionX<T>
append
in interface Traversable<T>
values
- toNested appenddefault ListX<T> append(T value)
append
in interface LazyCollectionX<T>
append
in interface Traversable<T>
default ListX<T> prepend(T value)
prepend
in interface LazyCollectionX<T>
prepend
in interface Traversable<T>
default ListX<T> prepend(T... values)
Traversable
List<String> result = ReactiveSeq.of(1,2,3)
.prepend(100,200,300)
.map(it ->it+"!!")
.collect(CyclopsCollectors.toList());
assertThat(result,equalTo(Arrays.asList("100!!","200!!","300!!","1!!","2!!","3!!")));
prepend
in interface LazyCollectionX<T>
prepend
in interface Traversable<T>
values
- toNested prependdefault ListX<T> insertAt(int pos, T... values)
Traversable
List<String> result = ReactiveSeq.of(1, 2, 3).insertAt(1, 100, 200, 300).map(it -> it + "!!").collect(CyclopsCollectors.toList());
assertThat(result, equalTo(Arrays.asList("1!!", "100!!", "200!!", "300!!", "2!!", "3!!"))); *
insertAt
in interface LazyCollectionX<T>
insertAt
in interface Traversable<T>
pos
- toNested insert data atvalues
- toNested insertdefault ListX<T> deleteBetween(int start, int end)
Traversable
List<String> result = ReactiveSeq.of(1, 2, 3, 4, 5, 6).deleteBetween(2, 4).map(it -> it + "!!").collect(CyclopsCollectors.toList());
assertThat(result, equalTo(Arrays.asList("1!!", "2!!", "5!!", "6!!"))); *
deleteBetween
in interface LazyCollectionX<T>
deleteBetween
in interface Traversable<T>
start
- indexend
- indexdefault ListX<T> insertAtS(int pos, java.util.stream.Stream<T> stream)
Traversable
List<String> result = ReactiveSeq.of(1, 2, 3).insertAtS(1, of(100, 200, 300)).map(it -> it + "!!").collect(CyclopsCollectors.toList());
assertThat(result, equalTo(Arrays.asList("1!!", "100!!", "200!!", "300!!", "2!!", "3!!")));
insertAtS
in interface LazyCollectionX<T>
insertAtS
in interface Traversable<T>
pos
- toNested insert Stream atstream
- toNested insertdefault ListX<T> recover(java.util.function.Function<? super java.lang.Throwable,? extends T> fn)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4)
.map(i->i+2)
.map(u->{throw new RuntimeException();})
.recover(e->"hello")
.firstValue(),equalTo("hello"));
recover
in interface Traversable<T>
fn
- Function that accepts a Throwable and returns an alternative
valuedefault <EX extends java.lang.Throwable> ListX<T> recover(java.lang.Class<EX> exceptionClass, java.util.function.Function<? super EX,? extends T> fn)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4)
.map(i->i+2)
.map(u->{ExceptionSoftener.throwSoftenedException( new IOException()); return null;})
.recover(IOException.class,e->"hello")
.firstValue(),equalTo("hello"));
recover
in interface Traversable<T>
exceptionClass
- Type toNested recover fromfn
- That accepts an error and returns an alternative valuedefault ListX<T> plusLoop(int max, java.util.function.IntFunction<T> value)
plusLoop
in interface FluentCollectionX<T>
default ListX<T> plusLoop(java.util.function.Supplier<java.util.Optional<T>> supplier)
plusLoop
in interface FluentCollectionX<T>