T
- Type of data stored inside the nested Listspublic class ListTSeq<T> extends java.lang.Object implements ListT<T>
Modifier and Type | Method and Description |
---|---|
ListTSeq<T> |
combine(java.util.function.BiPredicate<? super T,? super T> predicate,
java.util.function.BinaryOperator<T> op)
Combine two adjacent elements in a traversable using the supplied BinaryOperator
This is a stateful grouping and reduction operation.
|
ListTSeq<T> |
cycle(int times)
Convert to a Stream with the values repeated specified times
|
ListTSeq<T> |
cycle(Monoid<T> m,
int times)
Convert to a Stream with the result of a reduction operation repeated
specified times
|
ListTSeq<T> |
cycleUntil(java.util.function.Predicate<? super T> predicate)
Repeat in a Stream until specified predicate holds
|
ListTSeq<T> |
cycleWhile(java.util.function.Predicate<? super T> predicate)
Repeat in a Stream while specified predicate holds
|
ListTSeq<T> |
distinct() |
ListTSeq<T> |
dropRight(int num)
Generate a new Traversable that drops the specified number elements from the end of this Traversable
|
ListTSeq<T> |
dropUntil(java.util.function.Predicate<? super T> p)
Generate a new Traversable that drops elements from this Traversable until the predicate holds
|
ListTSeq<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
|
<R> ListT<R> |
empty() |
static <T> ListTSeq<T> |
emptyList() |
boolean |
equals(java.lang.Object o) |
ListTSeq<T> |
filter(java.util.function.Predicate<? super T> test)
Filter the wrapped List
|
<B> ListTSeq<B> |
flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends B>> f) |
<B> ListTSeq<B> |
flatMapT(java.util.function.Function<? super T,ListTSeq<B>> f)
Flat Map the wrapped List
|
static <A> ListTSeq<A> |
fromAnyM(AnyMSeq<A> anyM)
|
static <A> ListTSeq<A> |
fromStream(AnyMSeq<java.util.stream.Stream<A>> monads)
Create a ListT from an AnyM that wraps a monad containing a Stream
|
<K> ListTSeq<org.jooq.lambda.tuple.Tuple2<K,org.jooq.lambda.Seq<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
|
<K,A,D> ListTSeq<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
|
ListTSeq<ListX<T>> |
grouped(int groupSize)
Group elements in a Stream
|
<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
|
ListTSeq<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.
|
ListTSeq<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
|
<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
|
ListTSeq<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
|
<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
|
int |
hashCode() |
ListTSeq<T> |
intersperse(T value)
Returns a stream with a given value interspersed between any two values
of this stream.
|
boolean |
isSeqPresent() |
java.util.Iterator<T> |
iterator() |
static <U,R> java.util.function.Function<ListTSeq<U>,ListTSeq<R>> |
lift(java.util.function.Function<? super U,? extends R> fn)
Lift a function into one that accepts and returns an ListT
This allows multiple monad types to add functionality to existing functions and methods
e.g.
|
static <U1,U2,R> java.util.function.BiFunction<ListTSeq<U1>,ListTSeq<U2>,ListTSeq<R>> |
lift2(java.util.function.BiFunction<? super U1,? super U2,? extends R> fn)
Lift a BiFunction into one that accepts and returns ListTs
This allows multiple monad types to add functionality to existing functions and methods
e.g.
|
ListTSeq<T> |
limit(long num)
assertThat(ReactiveSeq.of(4,3,6,7).limit(2).toList(),equalTo(Arrays.asList(4,3)); |
ListTSeq<T> |
limitLast(int num)
Limit results to the last x elements in a SequenceM
|
ListTSeq<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.
|
ListTSeq<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
|
<B> ListTSeq<B> |
map(java.util.function.Function<? super T,? extends B> f)
Map the wrapped List
|
AnyM<? extends CyclopsCollectable<T>> |
nestedCollectables() |
AnyM<? extends IterableFoldable<T>> |
nestedFoldables() |
static <A> ListTSeq<A> |
of(AnyMSeq<? extends java.util.List<A>> monads)
Construct an ListT from an AnyM that wraps a monad containing Lists
|
static <A> ListTSeq<A> |
of(java.util.List<A> monads) |
ListTSeq<T> |
onEmpty(T value)
If this Container instance is empty, create a new instance containing the provided value
|
ListTSeq<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
|
<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
|
ListTSeq<T> |
peek(java.util.function.Consumer<? super T> peek)
Peek at the current value of the List
|
ListTSeq<T> |
reverse()
Potentially efficient Stream reversal.
|
ListTSeq<T> |
scanLeft(Monoid<T> monoid)
Scan left using supplied Monoid
|
<U> ListTSeq<U> |
scanLeft(U seed,
java.util.function.BiFunction<? super U,? super T,? extends U> function)
Scan left
|
ListTSeq<T> |
scanRight(Monoid<T> monoid)
Scan right
|
<U> ListTSeq<U> |
scanRight(U identity,
java.util.function.BiFunction<? super T,? super U,? extends U> combiner)
Scan right
|
ListTSeq<T> |
shuffle() |
ListTSeq<T> |
shuffle(java.util.Random random) |
ListTSeq<T> |
skip(long num)
assertThat(ReactiveSeq.of(4,3,6,7).skip(2).toList(),equalTo(Arrays.asList(6,7))); |
ListTSeq<T> |
skipLast(int num)
assertThat(ReactiveSeq.of(1,2,3,4,5) .skipLast(2)
.collect(Collectors.toList()),equalTo(Arrays.asList(1,2,3)));
|
ListTSeq<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
|
ListTSeq<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 *
|
ListTSeq<T> |
slice(long from,
long to) |
ListTSeq<ListX<T>> |
sliding(int windowSize)
Create a sliding view over this Sequence
|
ListTSeq<ListX<T>> |
sliding(int windowSize,
int increment)
Create a sliding view over this Sequence
|
ListTSeq<T> |
sorted()
assertThat(ReactiveSeq.of(4,3,6,7)).sorted().toList(),equalTo(Arrays.asList(3,4,6,7))); |
ListTSeq<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)));
|
<U extends java.lang.Comparable<? super U>> |
sorted(java.util.function.Function<? super T,? extends U> function) |
ReactiveSeq<T> |
stream() |
ListTSeq<T> |
takeRight(int num)
Generate a new Traversable that takes the specified number elements from the end of this Traversable
|
ListTSeq<T> |
takeUntil(java.util.function.Predicate<? super T> p)
Generate a new Traversable that takes elements from this Traversable until the predicate holds
|
ListTSeq<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
|
java.lang.String |
toString() |
AnyMSeq<? extends Traversable<T>> |
transformerStream() |
<T> ListTSeq<T> |
unit(T unit) |
<T> ListTSeq<T> |
unitAnyM(AnyM<Traversable<T>> traversable) |
<R> ListTSeq<R> |
unitIterator(java.util.Iterator<R> it) |
AnyMSeq<ListX<T>> |
unwrap() |
<U> ListTSeq<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
|
<U,R> ListTSeq<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
|
<U> ListTSeq<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(org.jooq.lambda.Seq<? extends U> other)
Zip (combine) this Zippable with the supplied Seq combining both into a Tuple2
|
<U,R> ListTSeq<R> |
zip(org.jooq.lambda.Seq<? extends U> other,
java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zip (combine) this Zippable with the supplied Seq, using the supplied combining function
|
<U> ListTSeq<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(java.util.stream.Stream<? extends U> other)
Zip 2 streams into one
|
<U,R> ListTSeq<R> |
zip(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
|
<S,U> ListTSeq<org.jooq.lambda.tuple.Tuple3<T,S,U>> |
zip3(java.util.stream.Stream<? extends S> second,
java.util.stream.Stream<? extends U> third)
zip 3 Streams into one
|
<T2,T3,T4> ListTSeq<org.jooq.lambda.tuple.Tuple4<T,T2,T3,T4>> |
zip4(java.util.stream.Stream<? extends T2> second,
java.util.stream.Stream<? extends T3> third,
java.util.stream.Stream<? extends T4> fourth)
zip 4 Streams into 1
|
ListTSeq<org.jooq.lambda.tuple.Tuple2<T,java.lang.Long>> |
zipWithIndex()
Add an index to the current Stream
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
bind, cast, emptyOptional, filterNot, fromAnyM, fromAnyMSeq, fromAnyMValue, fromFuture, fromIterable, fromOptional, fromPublisher, fromStream, fromStreamAnyM, fromValue, notNull, of, ofType, patternMatch, trampoline
futureOperations, lazyOperations, subscribe
seq, toCompletableFuture, toDequeX, toEvalAlways, toEvalLater, toEvalNow, toFutureStream, toFutureStream, toFutureW, toIor, toIorSecondary, toListX, toMapX, toMaybe, toOptional, toPBagX, toPMapX, toPOrderedSetX, toPQueueX, toPSetX, toPStackX, toPVectorX, toQueueX, toSetX, toSimpleReact, toSimpleReact, toSortedSetX, toStreamable, toTry, toValue, toValueMap, toValueSet, toXor, toXorSecondary
drop, take, traversable
fixedDelay, onePer, xPer
futureStream, getStreamable, isEmpty, jdkStream, reactiveSeq, reveresedJDKStream, reveresedStream
endsWith, endsWithIterable, findFirst, firstValue, foldRight, foldRight, foldRight, foldRightMapToType, get, groupBy, headAndTail, join, join, join, mapReduce, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce, schedule, scheduleFixedDelay, scheduleFixedRate, single, single, singleOptional, startsWith, startsWithIterable, toConcurrentLazyCollection, toConcurrentLazyStreamable, toLazyCollection, validate, visit
allMatch, anyMatch, collect, collect, listT, noneMatch, setT, streamableT, streamT, toListOfLists, toNestedListX, toNestedSetX, toSetOfSets
public ListTSeq<T> peek(java.util.function.Consumer<? super T> peek)
ListT.of(AnyM.fromStream(Arrays.asList(10))
.peek(System.out::println);
//prints 10
public ListTSeq<T> filter(java.util.function.Predicate<? super T> test)
ListT.of(AnyM.fromStream(Arrays.asList(10,11))
.filter(t->t!=10);
//ListT<AnyM<Stream<List[11]>>>
filter
in interface ListT<T>
filter
in interface Filterable<T>
filter
in interface FilterableFunctor<T>
test
- Predicate to filter the wrapped Listpublic <B> ListTSeq<B> map(java.util.function.Function<? super T,? extends B> f)
ListT.of(AnyM.fromStream(Arrays.asList(10))
.map(t->t=t+1);
//ListT<AnyM<Stream<List[11]>>>
public <B> ListTSeq<B> flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends B>> f)
public <B> ListTSeq<B> flatMapT(java.util.function.Function<? super T,ListTSeq<B>> f)
ListT.of(AnyM.fromStream(Arrays.asList(10))
.flatMap(t->List.empty();
//ListT<AnyM<Stream<List.empty>>>
f
- FlatMap functionpublic static <U,R> java.util.function.Function<ListTSeq<U>,ListTSeq<R>> lift(java.util.function.Function<? super U,? extends R> fn)
Function<Integer,Integer> add2 = i -> i+2;
Function<ListT<Integer>, ListT<Integer>> optTAdd2 = ListT.lift(add2);
Stream<Integer> nums = Stream.of(1,2);
AnyM<Stream<Integer>> stream = AnyM.ofMonad(Arrays.asList(nums));
List<Integer> results = optTAdd2.apply(ListT.fromStream(stream))
.unwrap()
.<Optional<List<Integer>>>unwrap().get();
//Arrays.asList(3,4);
public static <U1,U2,R> java.util.function.BiFunction<ListTSeq<U1>,ListTSeq<U2>,ListTSeq<R>> lift2(java.util.function.BiFunction<? super U1,? super U2,? extends R> fn)
BiFunction<Integer,Integer,Integer> add = (a,b) -> a+b;
BiFunction<ListT<Integer>,ListT<Integer>, ListT<Integer>> optTAdd2 = ListT.lift2(add);
Streamable<Integer> threeValues = Streamable.of(1,2,3);
AnyM<Integer> stream = AnyM.fromStreamable(threeValues);
AnyM<List<Integer>> streamOpt = stream.map(Arrays::asList);
CompletableFuture<List<Integer>> two = CompletableFuture.completedFuture(Arrays.asList(2));
AnyM<List<Integer>> future= AnyM.fromCompletableFuture(two);
List<Integer> results = optTAdd2.apply(ListT.of(streamOpt),ListT.of(future))
.unwrap()
.<Stream<List<Integer>>>unwrap()
.flatMap(i->i.stream())
.collect(Collectors.toList());
//Arrays.asList(3,4);
public static <A> ListTSeq<A> fromAnyM(AnyMSeq<A> anyM)
anyM
- AnyM that doesn't contain a monad wrapping an Listpublic static <A> ListTSeq<A> of(AnyMSeq<? extends java.util.List<A>> monads)
monads
- AnyM that contains a monad wrapping an Listpublic static <A> ListTSeq<A> of(java.util.List<A> monads)
public static <A> ListTSeq<A> fromStream(AnyMSeq<java.util.stream.Stream<A>> monads)
monads
- public java.lang.String toString()
toString
in class java.lang.Object
public ReactiveSeq<T> stream()
stream
in interface FoldableTransformerSeq<T>
stream
in interface TransformerSeq<T>
stream
in interface NestedFoldable<T>
stream
in interface Sequential<T>
stream
in interface ConvertableSequence<T>
stream
in interface ToStream<T>
stream
in interface Traversable<T>
public java.util.Iterator<T> iterator()
public <R> ListTSeq<R> unitIterator(java.util.Iterator<R> it)
unitIterator
in interface ListT<T>
public AnyM<? extends IterableFoldable<T>> nestedFoldables()
nestedFoldables
in interface NestedFoldable<T>
public AnyM<? extends CyclopsCollectable<T>> nestedCollectables()
nestedCollectables
in interface NestedCollectable<T>
public <T> ListTSeq<T> unitAnyM(AnyM<Traversable<T>> traversable)
unitAnyM
in interface TransformerSeq<T>
public AnyMSeq<? extends Traversable<T>> transformerStream()
transformerStream
in interface TransformerSeq<T>
public boolean isSeqPresent()
isSeqPresent
in interface ListT<T>
isSeqPresent
in interface TransformerSeq<T>
public ListTSeq<T> combine(java.util.function.BiPredicate<? super T,? super T> predicate, java.util.function.BinaryOperator<T> op)
Traversable
ReactiveSeq.of(1,1,2,3)
.combine((a, b)->a.equals(b),Semigroups.intSum)
.toListX()
//ListX(3,4)
combine
in interface ListT<T>
combine
in interface TransformerSeq<T>
combine
in interface Traversable<T>
predicate
- Test to see if two neighbours should be joinedop
- Reducer to combine neighbourspublic ListTSeq<T> cycle(int times)
Traversable
ReactiveSeq.of(1,2,2)
.cycle(3)
.collect(Collectors.toList());
//List[1,2,2,1,2,2,1,2,2]
cycle
in interface ListT<T>
cycle
in interface TransformerSeq<T>
cycle
in interface Traversable<T>
times
- Times values should be repeated within a Streampublic ListTSeq<T> cycle(Monoid<T> m, int times)
Traversable
List<Integer> list = ReactiveSeq.of(1,2,2))
.cycle(Reducers.toCountInt(),3)
.collect(Collectors.toList());
//List[3,3,3];
cycle
in interface ListT<T>
cycle
in interface TransformerSeq<T>
cycle
in interface Traversable<T>
m
- Monoid to be used in reductiontimes
- Number of times value should be repeatedpublic ListTSeq<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(Collectors.toList());
// List(1,2,2,1,2,2)
cycleWhile
in interface ListT<T>
cycleWhile
in interface TransformerSeq<T>
cycleWhile
in interface Traversable<T>
predicate
- repeat while truepublic ListTSeq<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(Collectors.toList());
//List[1,2,2,1,2,2,1]
cycleUntil
in interface ListT<T>
cycleUntil
in interface TransformerSeq<T>
cycleUntil
in interface Traversable<T>
predicate
- repeat while truepublic <U,R> ListTSeq<R> zip(java.lang.Iterable<? extends U> other, java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zippable
public <U,R> ListTSeq<R> zip(java.util.stream.Stream<? extends U> other, java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zippable
public <U,R> ListTSeq<R> zip(org.jooq.lambda.Seq<? extends U> other, java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
Zippable
public <U> ListTSeq<org.jooq.lambda.tuple.Tuple2<T,U>> zip(java.util.stream.Stream<? extends U> other)
Traversable
List<Tuple2<Integer, String>> list = of(1, 2).zip(of("a", "b", "c", "d")).toList();
// [[1,"a"],[2,"b"]]
public <U> ListTSeq<org.jooq.lambda.tuple.Tuple2<T,U>> zip(java.lang.Iterable<? extends U> other)
Zippable
public <U> ListTSeq<org.jooq.lambda.tuple.Tuple2<T,U>> zip(org.jooq.lambda.Seq<? extends U> other)
Zippable
public <S,U> ListTSeq<org.jooq.lambda.tuple.Tuple3<T,S,U>> zip3(java.util.stream.Stream<? extends S> second, java.util.stream.Stream<? 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(Collectors.toList());
// [[1,100,'a'],[2,200,'b'],[3,300,'c']]
zip3
in interface ListT<T>
zip3
in interface TransformerSeq<T>
zip3
in interface Traversable<T>
public <T2,T3,T4> ListTSeq<org.jooq.lambda.tuple.Tuple4<T,T2,T3,T4>> zip4(java.util.stream.Stream<? extends T2> second, java.util.stream.Stream<? extends T3> third, java.util.stream.Stream<? 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(Collectors.toList());
// [[1,100,'a',"hello"],[2,200,'b',"world"]]
zip4
in interface ListT<T>
zip4
in interface TransformerSeq<T>
zip4
in interface Traversable<T>
public ListTSeq<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 ListT<T>
zipWithIndex
in interface TransformerSeq<T>
zipWithIndex
in interface Traversable<T>
public ListTSeq<ListX<T>> sliding(int windowSize)
Traversable
List<List<Integer>> list = ReactiveSeq.of(1, 2, 3, 4, 5, 6).sliding(2).collect(Collectors.toList());
assertThat(list.get(0), hasItems(1, 2));
assertThat(list.get(1), hasItems(2, 3));
sliding
in interface ListT<T>
sliding
in interface TransformerSeq<T>
sliding
in interface Traversable<T>
windowSize
- Size of sliding windowpublic ListTSeq<ListX<T>> sliding(int windowSize, int increment)
Traversable
List<List<Integer>> list = ReactiveSeq.of(1, 2, 3, 4, 5, 6).sliding(3, 2).collect(Collectors.toList());
assertThat(list.get(0), hasItems(1, 2, 3));
assertThat(list.get(1), hasItems(3, 4, 5));
sliding
in interface ListT<T>
sliding
in interface TransformerSeq<T>
sliding
in interface Traversable<T>
windowSize
- number of elements in each batchincrement
- for each windowpublic <C extends java.util.Collection<? super T>> ListTSeq<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 ListT<T>
grouped
in interface TransformerSeq<T>
grouped
in interface Traversable<T>
size
- batch sizesupplier
- Collection factorypublic ListTSeq<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 ListT<T>
groupedUntil
in interface TransformerSeq<T>
groupedUntil
in interface Traversable<T>
predicate
- Batch until predicate holds, then open next batchpublic ListTSeq<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 ListT<T>
groupedStatefullyUntil
in interface TransformerSeq<T>
groupedStatefullyUntil
in interface Traversable<T>
predicate
- Window while truepublic ListTSeq<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 ListT<T>
groupedWhile
in interface TransformerSeq<T>
groupedWhile
in interface Traversable<T>
predicate
- Batch while predicate holds, then open next batchpublic <C extends java.util.Collection<? super T>> ListTSeq<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 ListT<T>
groupedWhile
in interface TransformerSeq<T>
groupedWhile
in interface Traversable<T>
predicate
- Batch while predicate holds, then open next batchfactory
- Collection factorypublic <C extends java.util.Collection<? super T>> ListTSeq<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 ListT<T>
groupedUntil
in interface TransformerSeq<T>
groupedUntil
in interface Traversable<T>
predicate
- Batch until predicate holds, then open next batchfactory
- Collection factorypublic ListTSeq<ListX<T>> grouped(int groupSize)
Traversable
List<List<Integer>> list = ReactiveSeq.of(1, 2, 3, 4, 5, 6).grouped(3).collect(Collectors.toList());
assertThat(list.get(0), hasItems(1, 2, 3));
assertThat(list.get(1), hasItems(4, 5, 6));
grouped
in interface ListT<T>
grouped
in interface TransformerSeq<T>
grouped
in interface Traversable<T>
groupSize
- Size of each Grouppublic <K,A,D> ListTSeq<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 ListT<T>
grouped
in interface TransformerSeq<T>
grouped
in interface Traversable<T>
classifier
- Grouping functiondownstream
- Collector to create the grouping collectionpublic <K> ListTSeq<org.jooq.lambda.tuple.Tuple2<K,org.jooq.lambda.Seq<T>>> grouped(java.util.function.Function<? super T,? extends K> classifier)
Traversable
grouped
in interface ListT<T>
grouped
in interface TransformerSeq<T>
grouped
in interface Traversable<T>
classifier
- Grouping functionpublic ListTSeq<T> distinct()
distinct
in interface ListT<T>
distinct
in interface TransformerSeq<T>
distinct
in interface Traversable<T>
public ListTSeq<T> scanLeft(Monoid<T> monoid)
Traversable
assertEquals(asList("", "a", "ab", "abc"),ReactiveSeq.of("a", "b", "c")
.scanLeft(Reducers.toString("")).toList());
scanLeft
in interface ListT<T>
scanLeft
in interface TransformerSeq<T>
scanLeft
in interface Traversable<T>
public <U> ListTSeq<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 ListT<T>
scanLeft
in interface TransformerSeq<T>
scanLeft
in interface Traversable<T>
public ListTSeq<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 ListT<T>
scanRight
in interface TransformerSeq<T>
scanRight
in interface Traversable<T>
public <U> ListTSeq<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 ListT<T>
scanRight
in interface TransformerSeq<T>
scanRight
in interface Traversable<T>
public ListTSeq<T> sorted()
Traversable
assertThat(ReactiveSeq.of(4,3,6,7)).sorted().toList(),equalTo(Arrays.asList(3,4,6,7)));
sorted
in interface ListT<T>
sorted
in interface TransformerSeq<T>
sorted
in interface Traversable<T>
public ListTSeq<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 ListT<T>
sorted
in interface TransformerSeq<T>
sorted
in interface Traversable<T>
c
- Compartor to sort withpublic ListTSeq<T> takeWhile(java.util.function.Predicate<? super T> p)
Traversable
ListX.of(1,2,3).takeWhile(i<3);
//[1,2]
takeWhile
in interface ListT<T>
takeWhile
in interface TransformerSeq<T>
takeWhile
in interface Traversable<T>
p
- Predicate to determine when values should be takenpublic ListTSeq<T> dropWhile(java.util.function.Predicate<? super T> p)
Traversable
ListX.of(1,2,3).dropWhile(i<3);
//[3]
dropWhile
in interface ListT<T>
dropWhile
in interface TransformerSeq<T>
dropWhile
in interface Traversable<T>
p
- Predicate to determine when values should be droppedpublic ListTSeq<T> takeUntil(java.util.function.Predicate<? super T> p)
Traversable
ListX.of(1,2,3).takeUntil(i<2);
//[1,2]
takeUntil
in interface ListT<T>
takeUntil
in interface TransformerSeq<T>
takeUntil
in interface Traversable<T>
p
- Predicate to determine when values should be taken untilpublic ListTSeq<T> dropUntil(java.util.function.Predicate<? super T> p)
Traversable
ListX.of(1,2,3).dropUntil(i>2);
//[3]
dropUntil
in interface ListT<T>
dropUntil
in interface TransformerSeq<T>
dropUntil
in interface Traversable<T>
p
- Predicate to determine when values should be droppedpublic ListTSeq<T> dropRight(int num)
Traversable
ListX.of(1,2,3).dropRight(2);
//[1]
dropRight
in interface ListT<T>
dropRight
in interface TransformerSeq<T>
dropRight
in interface Traversable<T>
num
- Drop this number of elements from the end of this Traversablepublic ListTSeq<T> takeRight(int num)
Traversable
ListX.of(1,2,3).takeRight(2);
//[2,3]
takeRight
in interface ListT<T>
takeRight
in interface TransformerSeq<T>
takeRight
in interface Traversable<T>
num
- Take this number of elements from the end of this Traversablepublic ListTSeq<T> skip(long num)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).skip(2).toList(),equalTo(Arrays.asList(6,7)));
skip
in interface ListT<T>
skip
in interface TransformerSeq<T>
skip
in interface Traversable<T>
num
- Number of elemenets to skippublic ListTSeq<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 ListT<T>
skipWhile
in interface TransformerSeq<T>
skipWhile
in interface Traversable<T>
p
- Predicate to skip while truepublic ListTSeq<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 ListT<T>
skipUntil
in interface TransformerSeq<T>
skipUntil
in interface Traversable<T>
p
- Predicate to skip until truepublic ListTSeq<T> limit(long num)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).limit(2).toList(),equalTo(Arrays.asList(4,3));
limit
in interface ListT<T>
limit
in interface TransformerSeq<T>
limit
in interface Traversable<T>
num
- Limit element size to numpublic ListTSeq<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 ListT<T>
limitWhile
in interface TransformerSeq<T>
limitWhile
in interface Traversable<T>
p
- Limit while predicate is truepublic ListTSeq<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 ListT<T>
limitUntil
in interface TransformerSeq<T>
limitUntil
in interface Traversable<T>
p
- Limit until predicate is truepublic ListTSeq<T> intersperse(T value)
Traversable
intersperse
in interface ListT<T>
intersperse
in interface TransformerSeq<T>
intersperse
in interface Traversable<T>
public ListTSeq<T> reverse()
Traversable
assertThat( of(1, 2, 3).reverse().toList(),
equalTo(asList(3, 2, 1)));
reverse
in interface ListT<T>
reverse
in interface TransformerSeq<T>
reverse
in interface Traversable<T>
public ListTSeq<T> shuffle()
shuffle
in interface ListT<T>
shuffle
in interface TransformerSeq<T>
shuffle
in interface Traversable<T>
public ListTSeq<T> skipLast(int num)
Traversable
skipLast
in interface ListT<T>
skipLast
in interface TransformerSeq<T>
skipLast
in interface Traversable<T>
public ListTSeq<T> limitLast(int num)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4,5)
.limitLast(2)
.collect(Collectors.toList()),equalTo(Arrays.asList(4,5)));
limitLast
in interface ListT<T>
limitLast
in interface TransformerSeq<T>
limitLast
in interface Traversable<T>
num
- of elements to return (last elements)public ListTSeq<T> onEmpty(T value)
OnEmpty
public ListTSeq<T> onEmptyGet(java.util.function.Supplier<? extends T> supplier)
OnEmpty
onEmptyGet
in interface ListT<T>
onEmptyGet
in interface TransformerSeq<T>
onEmptyGet
in interface OnEmpty<T>
onEmptyGet
in interface Traversable<T>
supplier
- to determine new value for containerpublic <X extends java.lang.Throwable> ListTSeq<T> onEmptyThrow(java.util.function.Supplier<? extends X> supplier)
OnEmpty
onEmptyThrow
in interface ListT<T>
onEmptyThrow
in interface TransformerSeq<T>
onEmptyThrow
in interface OnEmpty<T>
onEmptyThrow
in interface Traversable<T>
supplier
- to create exception frompublic ListTSeq<T> shuffle(java.util.Random random)
shuffle
in interface ListT<T>
shuffle
in interface TransformerSeq<T>
shuffle
in interface Traversable<T>
public ListTSeq<T> slice(long from, long to)
slice
in interface ListT<T>
slice
in interface TransformerSeq<T>
slice
in interface Traversable<T>
public <U extends java.lang.Comparable<? super U>> ListTSeq<T> sorted(java.util.function.Function<? super T,? extends U> function)
sorted
in interface ListT<T>
sorted
in interface TransformerSeq<T>
sorted
in interface Traversable<T>
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object