public interface ListX<T> extends java.util.List<T>, MutableCollectionX<T>, MutableSequenceX<T>, java.lang.Comparable<T>, IterableFunctor<T>, ZippingApplicativable<T>
Modifier and Type | Method and Description |
---|---|
default <U> ListX<U> |
cast(java.lang.Class<U> type)
Cast all elements in a stream to a given type, possibly throwing a
ClassCastException . |
default ListX<ReactiveSeq<T>> |
combinations()
ReactiveSeq.of(1,2,3).combinations()
//SequenceM[SequenceM[],SequenceM[1],SequenceM[2],SequenceM[3].SequenceM[1,2],SequenceM[1,3],SequenceM[2,3]
,SequenceM[1,2,3]]
|
default ListX<ReactiveSeq<T>> |
combinations(int size)
ReactiveSeq.of(1,2,3).combinations(2)
//SequenceM[SequenceM[1,2],SequenceM[1,3],SequenceM[2,3]]
|
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 & reduction operation.
|
default ListX<T> |
cycle(int times)
Convert to a Stream with the values repeated specified times
|
default ListX<T> |
cycle(Monoid<T> m,
int times)
Convert to 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> |
distinct() |
default ListX<T> |
dropRight(int num) |
default ListX<T> |
dropUntil(java.util.function.Predicate<? super T> p) |
default ListX<T> |
dropWhile(java.util.function.Predicate<? super T> p) |
static <T> ListX<T> |
empty() |
default ListX<T> |
filter(java.util.function.Predicate<? super T> pred) |
default ListX<T> |
filterNot(java.util.function.Predicate<? super T> fn) |
default <R> ListX<R> |
flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper) |
default <T1> ListX<T1> |
from(java.util.Collection<T1> c) |
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> |
fromPublisher(org.reactivestreams.Publisher<? extends T> publisher)
Construct a ListX from an Publisher
|
default <X> ListX<X> |
fromStream(java.util.stream.Stream<X> stream) |
<T> java.util.stream.Collector<T,?,java.util.List<T>> |
getCollector() |
default <K> ListX<org.jooq.lambda.tuple.Tuple2<K,org.jooq.lambda.Seq<T>>> |
grouped(java.util.function.Function<? super T,? extends K> classifier) |
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) |
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>> |
groupedStatefullyWhile(java.util.function.BiPredicate<ListX<? super T>,? super T> predicate)
Create SequenceM of Streamables (replayable Streams / Sequences) where
each Streamable is populated while the supplied bipredicate holds.
|
default ListX<ListX<T>> |
groupedUntil(java.util.function.Predicate<? super T> predicate)
Create a SequenceM 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 SequenceM 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 SequenceM 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> |
intersperse(T value)
Returns a stream with a given value interspersed between any two values
of this stream.
|
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 to 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
|
default <R> ListX<R> |
map(java.util.function.Function<? super T,? extends R> mapper) |
default ListX<T> |
minus(int pos) |
default ListX<T> |
minus(java.lang.Object e) |
default ListX<T> |
minusAll(java.util.Collection<?> list) |
default ListX<T> |
notNull() |
static <T> ListX<T> |
of(T... values) |
default <U> ListX<U> |
ofType(java.lang.Class<U> type)
Keep only those elements in a stream that are of a given type.
|
default ListX<T> |
onEmpty(T value) |
default ListX<T> |
onEmptyGet(java.util.function.Supplier<T> supplier) |
default <X extends java.lang.Throwable> |
onEmptyThrow(java.util.function.Supplier<X> supplier) |
default <R> ListX<R> |
patternMatch(java.util.function.Function<Matchable.CheckValues<T,R>,Matchable.CheckValues<T,R>> case1,
java.util.function.Supplier<? extends R> otherwise)
Transform the elements of this Stream with a Pattern Matching case and default value
|
default ListX<T> |
peek(java.util.function.Consumer<? super T> c) |
default ListX<ReactiveSeq<T>> |
permutations()
Generate the permutations based on values in the SequenceM Makes use of
Streamable to store intermediate stages in a collection
|
default ListX<T> |
plus(int i,
T e) |
default ListX<T> |
plus(T e) |
default ListX<T> |
plusAll(java.util.Collection<? extends T> list) |
default ListX<T> |
plusAll(int i,
java.util.Collection<? extends T> list) |
default ListX<T> |
plusInOrder(T e) |
default ListX<T> |
removeAll(java.lang.Iterable<T> it) |
default ListX<T> |
removeAll(org.jooq.lambda.Seq<T> stream) |
default ListX<T> |
removeAll(java.util.stream.Stream<T> stream) |
default ListX<T> |
removeAll(T... values) |
default ListX<T> |
retainAll(java.lang.Iterable<T> it) |
default ListX<T> |
retainAll(org.jooq.lambda.Seq<T> stream) |
default ListX<T> |
retainAll(java.util.stream.Stream<T> stream) |
default ListX<T> |
retainAll(T... values) |
default ListX<T> |
reverse() |
default ListX<T> |
scanLeft(Monoid<T> monoid)
Scan left using supplied Monoid
|
default <U> ListX<U> |
scanLeft(U seed,
java.util.function.BiFunction<U,? super T,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,U,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(Collectors.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<ListX<T>> |
sliding(int windowSize)
Create a sliding view over this Sequence
|
default ListX<ListX<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) |
default ListX<T> |
takeRight(int num) |
default ListX<T> |
takeUntil(java.util.function.Predicate<? super T> p) |
default ListX<T> |
takeWhile(java.util.function.Predicate<? super T> p) |
default ListX<T> |
toListX() |
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
|
default <R> ListX<R> |
unit(java.util.Collection<R> col) |
default <R> ListX<R> |
unit(R value) |
default <R> ListX<R> |
unitIterator(java.util.Iterator<R> it) |
default ListX<T> |
with(int i,
T element) |
default <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(java.lang.Iterable<U> other) |
default <U,R> ListX<R> |
zip(java.lang.Iterable<U> other,
java.util.function.BiFunction<? super T,? super U,? extends R> zipper) |
default <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(org.jooq.lambda.Seq<U> other)
Zip 2 streams into one
|
default <S,U> ListX<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
|
default <T2,T3,T4> ListX<org.jooq.lambda.tuple.Tuple4<T,T2,T3,T4>> |
zip4(java.util.stream.Stream<T2> second,
java.util.stream.Stream<T3> third,
java.util.stream.Stream<T4> fourth)
zip 4 Streams into 1
|
default <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zipStream(java.util.stream.Stream<U> other)
Zip 2 streams into one
|
default ListX<org.jooq.lambda.tuple.Tuple2<T,java.lang.Long>> |
zipWithIndex()
Add an index to 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
flatMapPublisher, flatMapPublisher, flatMapPublisher, mergePublisher, mergePublisher
default ListX<T> toListX()
toListX
in interface ConvertableSequence<T>
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)
static <T> ListX<T> singleton(T value)
static <T> ListX<T> fromPublisher(org.reactivestreams.Publisher<? extends T> publisher)
iterable
- to construct 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 <R> ListX<R> unit(java.util.Collection<R> col)
unit
in interface FluentCollectionX<T>
default <R> ListX<R> unitIterator(java.util.Iterator<R> it)
unitIterator
in interface IterableFunctor<T>
default <R> ListX<R> patternMatch(java.util.function.Function<Matchable.CheckValues<T,R>,Matchable.CheckValues<T,R>> case1, java.util.function.Supplier<? extends R> otherwise)
Functor
List<String> result = CollectionX.of(1,2,3,4)
.patternMatch(
c->c.valuesWhere(i->"even", (Integer i)->i%2==0 )
)
// CollectionX["odd","even","odd","even"]
patternMatch
in interface CollectionX<T>
patternMatch
in interface Functor<T>
patternMatch
in interface MutableCollectionX<T>
case1
- Function to generate a case (or chain of cases as a single case)otherwise
- Value if supplied case doesn't matchdefault ReactiveSeq<T> stream()
stream
in interface java.util.Collection<T>
stream
in interface CollectionX<T>
stream
in interface ConvertableSequence<T>
stream
in interface Foldable<T>
stream
in interface IterableCollectable<T>
stream
in interface IterableFunctor<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)
from
in interface CollectionX<T>
default <X> ListX<X> fromStream(java.util.stream.Stream<X> stream)
fromStream
in interface MutableCollectionX<T>
default ListX<T> reverse()
reverse
in interface CollectionX<T>
reverse
in interface MutableCollectionX<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)
.toListX()
//ListX(3,4)
combine
in interface CollectionX<T>
combine
in interface MutableCollectionX<T>
combine
in interface Traversable<T>
predicate
- Test to see if two neighbors should be joinedop
- Reducer to combine neighborsdefault ListX<T> filter(java.util.function.Predicate<? super T> pred)
filter
in interface CollectionX<T>
filter
in interface Filterable<T>
filter
in interface MutableCollectionX<T>
default <R> ListX<R> map(java.util.function.Function<? super T,? extends R> mapper)
map
in interface CollectionX<T>
map
in interface Functor<T>
map
in interface IterableFunctor<T>
map
in interface MutableCollectionX<T>
default <R> ListX<R> flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper)
flatMap
in interface CollectionX<T>
flatMap
in interface MutableCollectionX<T>
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 MutableCollectionX<T>
limit
in interface Traversable<T>
num
- Limit element size to 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 MutableCollectionX<T>
skip
in interface Traversable<T>
num
- Number of elemenets to skipdefault ListX<T> takeRight(int num)
takeRight
in interface CollectionX<T>
takeRight
in interface MutableCollectionX<T>
takeRight
in interface Traversable<T>
default ListX<T> dropRight(int num)
dropRight
in interface CollectionX<T>
dropRight
in interface MutableCollectionX<T>
dropRight
in interface Traversable<T>
default ListX<T> takeWhile(java.util.function.Predicate<? super T> p)
takeWhile
in interface CollectionX<T>
takeWhile
in interface MutableCollectionX<T>
takeWhile
in interface Traversable<T>
default ListX<T> dropWhile(java.util.function.Predicate<? super T> p)
dropWhile
in interface CollectionX<T>
dropWhile
in interface MutableCollectionX<T>
dropWhile
in interface Traversable<T>
default ListX<T> takeUntil(java.util.function.Predicate<? super T> p)
takeUntil
in interface CollectionX<T>
takeUntil
in interface MutableCollectionX<T>
takeUntil
in interface Traversable<T>
default ListX<T> dropUntil(java.util.function.Predicate<? super T> p)
dropUntil
in interface CollectionX<T>
dropUntil
in interface MutableCollectionX<T>
dropUntil
in interface Traversable<T>
default <R> ListX<R> trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
MutableCollectionX
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 Functor<T>
trampoline
in interface MutableCollectionX<T>
default ListX<T> slice(long from, long to)
slice
in interface CollectionX<T>
slice
in interface MutableCollectionX<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 MutableCollectionX<T>
sorted
in interface Traversable<T>
default ListX<ListX<T>> grouped(int groupSize)
Traversable
{ @code 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 CollectionX<T>
grouped
in interface MutableCollectionX<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)
grouped
in interface CollectionX<T>
grouped
in interface MutableCollectionX<T>
grouped
in interface Traversable<T>
default <K> ListX<org.jooq.lambda.tuple.Tuple2<K,org.jooq.lambda.Seq<T>>> grouped(java.util.function.Function<? super T,? extends K> classifier)
grouped
in interface CollectionX<T>
grouped
in interface MutableCollectionX<T>
grouped
in interface Traversable<T>
default <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> zip(java.lang.Iterable<U> other)
zip
in interface CollectionX<T>
zip
in interface MutableCollectionX<T>
default <U,R> ListX<R> zip(java.lang.Iterable<U> other, java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
zip
in interface CollectionX<T>
zip
in interface MutableCollectionX<T>
zip
in interface Traversable<T>
default ListX<ListX<T>> sliding(int windowSize)
Traversable
{ @code 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 CollectionX<T>
sliding
in interface MutableCollectionX<T>
sliding
in interface Traversable<T>
windowSize
- Size of sliding windowdefault ListX<ListX<T>> sliding(int windowSize, int increment)
Traversable
{ @code 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 CollectionX<T>
sliding
in interface MutableCollectionX<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 MutableCollectionX<T>
scanLeft
in interface Traversable<T>
default <U> ListX<U> scanLeft(U seed, java.util.function.BiFunction<U,? super T,U> function)
Traversable
assertThat(of("a", "b", "c").scanLeft("", String::concat).toList().size(),
is(4));
scanLeft
in interface CollectionX<T>
scanLeft
in interface MutableCollectionX<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 MutableCollectionX<T>
scanRight
in interface Traversable<T>
default <U> ListX<U> scanRight(U identity, java.util.function.BiFunction<? super T,U,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 MutableCollectionX<T>
scanRight
in interface Traversable<T>
default ListX<T> with(int i, T element)
with
in interface FluentSequenceX<T>
with
in interface MutableSequenceX<T>
ListX<T> subList(int start, int end)
subList
in interface FluentSequenceX<T>
subList
in interface java.util.List<T>
subList
in interface MutableSequenceX<T>
default ListX<T> plus(T e)
plus
in interface FluentCollectionX<T>
plus
in interface FluentSequenceX<T>
plus
in interface MutableCollectionX<T>
plus
in interface MutableSequenceX<T>
default ListX<T> plusAll(java.util.Collection<? extends T> list)
plusAll
in interface FluentCollectionX<T>
plusAll
in interface FluentSequenceX<T>
plusAll
in interface MutableCollectionX<T>
plusAll
in interface MutableSequenceX<T>
default ListX<T> minus(int pos)
minus
in interface FluentSequenceX<T>
minus
in interface MutableSequenceX<T>
default ListX<T> minus(java.lang.Object e)
minus
in interface FluentCollectionX<T>
minus
in interface FluentSequenceX<T>
minus
in interface MutableCollectionX<T>
minus
in interface MutableSequenceX<T>
default ListX<T> minusAll(java.util.Collection<?> list)
minusAll
in interface FluentCollectionX<T>
minusAll
in interface FluentSequenceX<T>
minusAll
in interface MutableCollectionX<T>
minusAll
in interface MutableSequenceX<T>
default ListX<T> plus(int i, T e)
plus
in interface FluentSequenceX<T>
plus
in interface MutableSequenceX<T>
default ListX<T> plusAll(int i, java.util.Collection<? extends T> list)
plusAll
in interface FluentSequenceX<T>
plusAll
in interface MutableSequenceX<T>
int size()
default ListX<T> plusInOrder(T e)
plusInOrder
in interface FluentCollectionX<T>
default ListX<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 MutableCollectionX<T>
cycle
in interface Traversable<T>
times
- Times values should be repeated within a Streamdefault ListX<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 MutableCollectionX<T>
cycle
in interface Traversable<T>
m
- Monoid to be used in reductiontimes
- Number of times value should be repeateddefault ListX<T> cycleWhile(java.util.function.Predicate<? super T> predicate)
Traversable
{ @code 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 MutableCollectionX<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(Collectors.toList());
//List[1,2,2,1,2,2,1]
cycleUntil
in interface MutableCollectionX<T>
cycleUntil
in interface Traversable<T>
predicate
- repeat while truedefault <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> zipStream(java.util.stream.Stream<U> other)
Traversable
{ @code List<Tuple2<Integer, String>> list = of(1, 2).zip(of("a", "b", "c", "d")).toList(); // [[1,"a"],[2,"b"]] }
zipStream
in interface CollectionX<T>
zipStream
in interface MutableCollectionX<T>
zipStream
in interface Traversable<T>
default <U> ListX<org.jooq.lambda.tuple.Tuple2<T,U>> zip(org.jooq.lambda.Seq<U> other)
Traversable
{ @code List<Tuple2<Integer, String>> list = of(1, 2).zip(of("a", "b", "c", "d")).toList(); // [[1,"a"],[2,"b"]] }
zip
in interface MutableCollectionX<T>
zip
in interface Traversable<T>
default <S,U> ListX<org.jooq.lambda.tuple.Tuple3<T,S,U>> zip3(java.util.stream.Stream<? extends S> second, java.util.stream.Stream<? extends U> third)
Traversable
{ @code 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 MutableCollectionX<T>
zip3
in interface Traversable<T>
default <T2,T3,T4> ListX<org.jooq.lambda.tuple.Tuple4<T,T2,T3,T4>> zip4(java.util.stream.Stream<T2> second, java.util.stream.Stream<T3> third, java.util.stream.Stream<T4> fourth)
Traversable
{ @code 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 MutableCollectionX<T>
zip4
in interface Traversable<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 MutableCollectionX<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 MutableCollectionX<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 MutableCollectionX<T>
sorted
in interface Traversable<T>
c
- Compartor to 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 MutableCollectionX<T>
skipWhile
in interface Traversable<T>
p
- Predicate to 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 MutableCollectionX<T>
skipUntil
in interface Traversable<T>
p
- Predicate to skip until truedefault ListX<T> shuffle()
shuffle
in interface MutableCollectionX<T>
shuffle
in interface Traversable<T>
default ListX<T> skipLast(int num)
Traversable
skipLast
in interface MutableCollectionX<T>
skipLast
in interface Traversable<T>
default ListX<T> shuffle(java.util.Random random)
shuffle
in interface MutableCollectionX<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 MutableCollectionX<T>
default ListX<ReactiveSeq<T>> combinations(int size)
ExtendedTraversable
ReactiveSeq.of(1,2,3).combinations(2)
//SequenceM[SequenceM[1,2],SequenceM[1,3],SequenceM[2,3]]
combinations
in interface CollectionX<T>
combinations
in interface ExtendedTraversable<T>
combinations
in interface MutableCollectionX<T>
size
- of combinationsdefault ListX<ReactiveSeq<T>> combinations()
ExtendedTraversable
ReactiveSeq.of(1,2,3).combinations()
//SequenceM[SequenceM[],SequenceM[1],SequenceM[2],SequenceM[3].SequenceM[1,2],SequenceM[1,3],SequenceM[2,3]
,SequenceM[1,2,3]]
combinations
in interface CollectionX<T>
combinations
in interface ExtendedTraversable<T>
combinations
in interface MutableCollectionX<T>
default <U> ListX<U> cast(java.lang.Class<U> type)
Functor
ClassCastException
.
// ClassCastException ReactiveSeq.of(1, "a", 2, "b", 3).cast(Integer.class)cast
in interface CollectionX<T>
cast
in interface Functor<T>
cast
in interface MutableCollectionX<T>
default ListX<T> distinct()
distinct
in interface CollectionX<T>
distinct
in interface MutableCollectionX<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 MutableCollectionX<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 MutableCollectionX<T>
limitUntil
in interface Traversable<T>
p
- Limit until predicate is truedefault ListX<T> intersperse(T value)
Traversable
intersperse
in interface MutableCollectionX<T>
intersperse
in interface Traversable<T>
default ListX<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 MutableCollectionX<T>
limitLast
in interface Traversable<T>
num
- of elements to return (last elements)default ListX<T> onEmpty(T value)
onEmpty
in interface MutableCollectionX<T>
onEmpty
in interface Traversable<T>
default ListX<T> onEmptyGet(java.util.function.Supplier<T> supplier)
onEmptyGet
in interface MutableCollectionX<T>
onEmptyGet
in interface Traversable<T>
default <X extends java.lang.Throwable> ListX<T> onEmptyThrow(java.util.function.Supplier<X> supplier)
onEmptyThrow
in interface MutableCollectionX<T>
onEmptyThrow
in interface Traversable<T>
default <U> ListX<U> ofType(java.lang.Class<U> type)
Filterable
ofType
in interface Filterable<T>
ofType
in interface MutableCollectionX<T>
default ListX<T> filterNot(java.util.function.Predicate<? super T> fn)
filterNot
in interface CollectionX<T>
filterNot
in interface Filterable<T>
filterNot
in interface MutableCollectionX<T>
default ListX<T> notNull()
notNull
in interface CollectionX<T>
notNull
in interface Filterable<T>
notNull
in interface MutableCollectionX<T>
default ListX<T> removeAll(java.util.stream.Stream<T> stream)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface MutableCollectionX<T>
default ListX<T> removeAll(java.lang.Iterable<T> it)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface MutableCollectionX<T>
default ListX<T> removeAll(T... values)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface MutableCollectionX<T>
default ListX<T> retainAll(java.lang.Iterable<T> it)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface MutableCollectionX<T>
default ListX<T> retainAll(java.util.stream.Stream<T> stream)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface MutableCollectionX<T>
default ListX<T> retainAll(T... values)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface MutableCollectionX<T>
default <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 MutableCollectionX<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)
.batchUntil(i->i%3==0)
.toList()
.size(),equalTo(2));
groupedUntil
in interface MutableCollectionX<T>
groupedUntil
in interface Traversable<T>
predicate
- Batch until predicate holds, then open next batchdefault ListX<ListX<T>> groupedWhile(java.util.function.Predicate<? super T> predicate)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4,5,6)
.batchWhile(i->i%3!=0)
.toList().size(),equalTo(2));
groupedWhile
in interface MutableCollectionX<T>
groupedWhile
in interface Traversable<T>
predicate
- Batch while predicate holds, then 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 MutableCollectionX<T>
groupedWhile
in interface Traversable<T>
predicate
- Batch while predicate holds, then 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
assertThat(ReactiveSeq.of(1,2,3,4,5,6)
.batchUntil(i->i%3!=0)
.toList()
.size(),equalTo(2));
groupedUntil
in interface MutableCollectionX<T>
groupedUntil
in interface Traversable<T>
predicate
- Batch until predicate holds, then open next batchfactory
- Collection factorydefault ListX<ListX<T>> groupedStatefullyWhile(java.util.function.BiPredicate<ListX<? super T>,? super T> predicate)
Traversable
assertThat(ReactiveSeq.of(1,2,3,4,5,6)
.windowStatefullyWhile((s,i)->s.sequenceM().toList().contains(4) ? true : false)
.toList().size(),equalTo(5));
groupedStatefullyWhile
in interface MutableCollectionX<T>
groupedStatefullyWhile
in interface Traversable<T>
predicate
- Window while truedefault ListX<T> removeAll(org.jooq.lambda.Seq<T> stream)
removeAll
in interface CollectionX<T>
removeAll
in interface MutableCollectionX<T>
default ListX<T> retainAll(org.jooq.lambda.Seq<T> stream)
retainAll
in interface CollectionX<T>
retainAll
in interface MutableCollectionX<T>