public interface PStackX<T> extends org.pcollections.PStack<T>, PersistentCollectionX<T>, FluentSequenceX<T>
Modifier and Type | Method and Description |
---|---|
default <U> PStackX<U> |
cast(java.lang.Class<U> type)
Cast all elements in a stream to a given type, possibly throwing a
ClassCastException . |
default PStackX<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 PStackX<ReactiveSeq<T>> |
combinations(int size)
ReactiveSeq.of(1,2,3).combinations(2)
//SequenceM[SequenceM[1,2],SequenceM[1,3],SequenceM[2,3]]
|
default PStackX<T> |
combine(java.util.function.BiPredicate<? super T,? super T> predicate,
java.util.function.BinaryOperator<T> op)
Combine two adjacent elements in a PStackX using the supplied BinaryOperator
This is a stateful grouping & reduction operation.
|
default PStackX<T> |
cycle(int times)
Convert to a Stream with the values repeated specified times
|
default PStackX<T> |
cycle(Monoid<T> m,
int times)
Convert to a Stream with the result of a reduction operation repeated
specified times
|
default PStackX<T> |
cycleUntil(java.util.function.Predicate<? super T> predicate)
Repeat in a Stream until specified predicate holds
|
default PStackX<T> |
cycleWhile(java.util.function.Predicate<? super T> predicate)
Repeat in a Stream while specified predicate holds
|
default PStackX<T> |
distinct() |
default PStackX<T> |
dropRight(int num) |
default PStackX<T> |
dropUntil(java.util.function.Predicate<? super T> p) |
default PStackX<T> |
dropWhile(java.util.function.Predicate<? super T> p) |
PStackX<T> |
efficientOpsOff() |
PStackX<T> |
efficientOpsOn() |
static <T> PStackX<T> |
empty()
List<String> empty = PStack.empty();
//or
PStack<String> empty = PStack.empty();
|
default <R> PStackX<R> |
emptyUnit() |
default PStackX<T> |
filter(java.util.function.Predicate<? super T> pred) |
default PStackX<T> |
filterNot(java.util.function.Predicate<? super T> fn) |
default <R> PStackX<R> |
flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper) |
default <X> PStackX<X> |
from(java.util.Collection<X> col) |
static <T> PStackX<T> |
fromCollection(java.util.Collection<T> values)
List<String> list = PStacks.of(Arrays.asList("a","b","c"));
// or
PStack<String> list = PStacks.of(Arrays.asList("a","b","c"));
|
static <T> PStackX<T> |
fromIterable(java.lang.Iterable<T> iterable) |
static <T> PStackX<T> |
fromPublisher(org.reactivestreams.Publisher<? extends T> publisher)
Construct a PStackX from an Publisher
|
static <T> PStackX<T> |
fromStream(java.util.stream.Stream<T> stream)
Reduce (immutable Collection) a Stream to a PStack, note for efficiency reasons,
the produced PStack is reversed.
|
default <K> PStackX<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> PStackX<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 PStackX<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 PStackX<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 PStackX<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 PStackX<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
|
default PStackX<T> |
intersperse(T value)
Returns a stream with a given value interspersed between any two values
of this stream.
|
boolean |
isEfficientOps() |
default PStackX<T> |
limit(long num)
assertThat(ReactiveSeq.of(4,3,6,7).limit(2).toList(),equalTo(Arrays.asList(4,3)); |
default PStackX<T> |
limitLast(int num)
Limit results to the last x elements in a SequenceM
|
default PStackX<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 PStackX<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> PStackX<R> |
map(java.util.function.Function<? super T,? extends R> mapper) |
PStackX<T> |
minus(int i) |
PStackX<T> |
minus(java.lang.Object remove) |
PStackX<T> |
minusAll(java.util.Collection<?> list) |
default <T> Reducer<org.pcollections.PStack<T>> |
monoid() |
default PStackX<T> |
notNull() |
static <T> PStackX<T> |
of(T... values)
Construct a PStack from the provided values
|
default <U> PStackX<U> |
ofType(java.lang.Class<U> type)
Keep only those elements in a stream that are of a given type.
|
default PStackX<T> |
onEmpty(T value) |
default PStackX<T> |
onEmptyGet(java.util.function.Supplier<T> supplier) |
default <X extends java.lang.Throwable> |
onEmptyThrow(java.util.function.Supplier<X> supplier) |
default <R> PStackX<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 PStackX<ReactiveSeq<T>> |
permutations()
Generate the permutations based on values in the SequenceM Makes use of
Streamable to store intermediate stages in a collection
|
PStackX<T> |
plus(int i,
T e) |
PStackX<T> |
plus(T e) |
PStackX<T> |
plusAll(java.util.Collection<? extends T> list) |
PStackX<T> |
plusAll(int i,
java.util.Collection<? extends T> list) |
default PStackX<T> |
plusInOrder(T e) |
default PStackX<T> |
removeAll(java.lang.Iterable<T> it) |
default PStackX<T> |
removeAll(org.jooq.lambda.Seq<T> stream) |
default PStackX<T> |
removeAll(java.util.stream.Stream<T> stream) |
default PStackX<T> |
removeAll(T... values) |
default PStackX<T> |
retainAll(java.lang.Iterable<T> it) |
default PStackX<T> |
retainAll(org.jooq.lambda.Seq<T> stream) |
default PStackX<T> |
retainAll(java.util.stream.Stream<T> stream) |
default PStackX<T> |
retainAll(T... values) |
default PStackX<T> |
reverse() |
default PStackX<T> |
scanLeft(Monoid<T> monoid)
Scan left using supplied Monoid
|
default <U> PStackX<U> |
scanLeft(U seed,
java.util.function.BiFunction<U,? super T,U> function)
Scan left
|
default PStackX<T> |
scanRight(Monoid<T> monoid)
Scan right
|
default <U> PStackX<U> |
scanRight(U identity,
java.util.function.BiFunction<? super T,U,U> combiner)
Scan right
|
default PStackX<T> |
shuffle() |
default PStackX<T> |
shuffle(java.util.Random random) |
static <T> PStackX<T> |
singleton(T value)
Construct a PStack containing a single value
|
default PStackX<T> |
skip(long num)
assertThat(ReactiveSeq.of(4,3,6,7).skip(2).toList(),equalTo(Arrays.asList(6,7))); |
default PStackX<T> |
skipLast(int num)
assertThat(ReactiveSeq.of(1,2,3,4,5) .skipLast(2)
.collect(Collectors.toList()),equalTo(Arrays.asList(1,2,3)));
|
default PStackX<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 PStackX<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 PStackX<T> |
slice(long from,
long to) |
default PStackX<ListX<T>> |
sliding(int windowSize)
Create a sliding view over this Sequence
|
default PStackX<ListX<T>> |
sliding(int windowSize,
int increment)
Create a sliding view over this Sequence
|
default PStackX<T> |
sorted()
assertThat(ReactiveSeq.of(4,3,6,7)).sorted().toList(),equalTo(Arrays.asList(3,4,6,7))); |
default PStackX<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() |
PStackX<T> |
subList(int start,
int end) |
default PStackX<T> |
takeRight(int num) |
default PStackX<T> |
takeUntil(java.util.function.Predicate<? super T> p) |
default PStackX<T> |
takeWhile(java.util.function.Predicate<? super T> p) |
default org.pcollections.PStack<T> |
toPStack() |
default PStackX<T> |
toPStackX() |
default <R> PStackX<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> PStackX<R> |
unit(java.util.Collection<R> col) |
default <R> PStackX<R> |
unit(R value) |
default <R> PStackX<R> |
unitIterator(java.util.Iterator<R> it) |
PStackX<T> |
with(int i,
T e) |
default <U> PStackX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(java.lang.Iterable<U> other) |
default <U,R> PStackX<R> |
zip(java.lang.Iterable<U> other,
java.util.function.BiFunction<? super T,? super U,? extends R> zipper) |
default <U> PStackX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(org.jooq.lambda.Seq<U> other)
Zip 2 streams into one
|
default <S,U> PStackX<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> PStackX<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> PStackX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zipStream(java.util.stream.Stream<U> other)
Zip 2 streams into one
|
default PStackX<org.jooq.lambda.tuple.Tuple2<T,java.lang.Long>> |
zipWithIndex()
Add an index to the current Stream
|
add, addAll, clear, remove, removeAll, retainAll
add, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, removeAll, replaceAll, retainAll, size, sort, spliterator, toArray, toArray
collectable, findAny, findFirst, forEach2, forEach2, forEach3, forEach3, getAtIndex, groupBy, head, headAndTail, peek, single, single, singleOptional
xMatch
fixedDelay, onePer, xPer
ap1, ap2, ap3, ap4, ap5, applicatives
allMatch, anyMatch, avg, avg, avgDouble, avgInt, avgLong, collect, count, count, countDistinct, countDistinct, countDistinctBy, countDistinctBy, max, max, max, max, maxBy, maxBy, median, median, medianBy, medianBy, min, min, min, min, minBy, minBy, mode, noneMatch, percentile, percentile, percentileBy, percentileBy, sum, sum, sumDouble, sumInt, sumLong, toCollection, toList, toList, toMap, toSet, toSet, toString, toString
static <T> PStackX<T> of(T... values)
List<String> list = PStacks.of("a","b","c");
// or
PStack<String> list = PStacks.of("a","b","c");
values
- To add to PStackstatic <T> PStackX<T> fromPublisher(org.reactivestreams.Publisher<? extends T> publisher)
publisher
- to construct PStackX fromstatic <T> PStackX<T> fromIterable(java.lang.Iterable<T> iterable)
static <T> PStackX<T> fromCollection(java.util.Collection<T> values)
List<String> list = PStacks.of(Arrays.asList("a","b","c"));
// or
PStack<String> list = PStacks.of(Arrays.asList("a","b","c"));
fromCollection
in interface CollectionX<T>
values
- To add to PStackstatic <T> PStackX<T> empty()
List<String> empty = PStack.empty();
//or
PStack<String> empty = PStack.empty();
static <T> PStackX<T> singleton(T value)
List<String> single = PStacks.singleton("1");
//or
PStack<String> single = PStacks.singleton("1");
value
- Single value for PVectorstatic <T> PStackX<T> fromStream(java.util.stream.Stream<T> stream)
PStack<Integer> list = PStacks.fromStream(Stream.of(1,2,3));
//list = [3,2,1]
stream
- to convert to a PVectordefault PStackX<T> toPStackX()
toPStackX
in interface ConvertableSequence<T>
default PStackX<T> combine(java.util.function.BiPredicate<? super T,? super T> predicate, java.util.function.BinaryOperator<T> op)
PStackX.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 PersistentCollectionX<T>
combine
in interface Traversable<T>
predicate
- Test to see if two neighbors should be joinedop
- Reducer to combine neighborsdefault <R> PStackX<R> unit(java.util.Collection<R> col)
unit
in interface FluentCollectionX<T>
unit
in interface PersistentCollectionX<T>
default <R> PStackX<R> unitIterator(java.util.Iterator<R> it)
unitIterator
in interface IterableFunctor<T>
default <R> PStackX<R> emptyUnit()
emptyUnit
in interface PersistentCollectionX<T>
default org.pcollections.PStack<T> toPStack()
default PStackX<T> plusInOrder(T e)
plusInOrder
in interface FluentCollectionX<T>
plusInOrder
in interface PersistentCollectionX<T>
default 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 PersistentCollectionX<T>
stream
in interface Traversable<T>
default <X> PStackX<X> from(java.util.Collection<X> col)
from
in interface CollectionX<T>
from
in interface PersistentCollectionX<T>
default <T> Reducer<org.pcollections.PStack<T>> monoid()
monoid
in interface PersistentCollectionX<T>
default PStackX<T> reverse()
reverse
in interface CollectionX<T>
reverse
in interface PersistentCollectionX<T>
reverse
in interface Traversable<T>
boolean isEfficientOps()
default PStackX<T> filter(java.util.function.Predicate<? super T> pred)
filter
in interface CollectionX<T>
filter
in interface Filterable<T>
filter
in interface PersistentCollectionX<T>
default <R> PStackX<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 PersistentCollectionX<T>
default <R> PStackX<R> flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper)
flatMap
in interface CollectionX<T>
flatMap
in interface PersistentCollectionX<T>
default PStackX<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 PersistentCollectionX<T>
limit
in interface Traversable<T>
num
- Limit element size to numdefault PStackX<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 PersistentCollectionX<T>
skip
in interface Traversable<T>
num
- Number of elemenets to skipdefault PStackX<T> takeRight(int num)
takeRight
in interface CollectionX<T>
takeRight
in interface PersistentCollectionX<T>
takeRight
in interface Traversable<T>
default PStackX<T> dropRight(int num)
dropRight
in interface CollectionX<T>
dropRight
in interface PersistentCollectionX<T>
dropRight
in interface Traversable<T>
default PStackX<T> takeWhile(java.util.function.Predicate<? super T> p)
takeWhile
in interface CollectionX<T>
takeWhile
in interface PersistentCollectionX<T>
takeWhile
in interface Traversable<T>
default PStackX<T> dropWhile(java.util.function.Predicate<? super T> p)
dropWhile
in interface CollectionX<T>
dropWhile
in interface PersistentCollectionX<T>
dropWhile
in interface Traversable<T>
default PStackX<T> takeUntil(java.util.function.Predicate<? super T> p)
takeUntil
in interface CollectionX<T>
takeUntil
in interface PersistentCollectionX<T>
takeUntil
in interface Traversable<T>
default PStackX<T> dropUntil(java.util.function.Predicate<? super T> p)
dropUntil
in interface CollectionX<T>
dropUntil
in interface PersistentCollectionX<T>
dropUntil
in interface Traversable<T>
default <R> PStackX<R> trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
PersistentCollectionX
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 PersistentCollectionX<T>
default PStackX<T> slice(long from, long to)
slice
in interface CollectionX<T>
slice
in interface PersistentCollectionX<T>
slice
in interface Traversable<T>
default <U extends java.lang.Comparable<? super U>> PStackX<T> sorted(java.util.function.Function<? super T,? extends U> function)
sorted
in interface CollectionX<T>
sorted
in interface PersistentCollectionX<T>
sorted
in interface Traversable<T>
PStackX<T> minusAll(java.util.Collection<?> list)
minusAll
in interface FluentCollectionX<T>
minusAll
in interface FluentSequenceX<T>
minusAll
in interface org.pcollections.PCollection<T>
minusAll
in interface org.pcollections.PSequence<T>
minusAll
in interface org.pcollections.PStack<T>
PStackX<T> minus(java.lang.Object remove)
minus
in interface FluentCollectionX<T>
minus
in interface FluentSequenceX<T>
minus
in interface org.pcollections.PCollection<T>
minus
in interface org.pcollections.PSequence<T>
minus
in interface org.pcollections.PStack<T>
PStackX<T> with(int i, T e)
with
in interface FluentSequenceX<T>
with
in interface org.pcollections.PSequence<T>
with
in interface org.pcollections.PStack<T>
i
- e
- PStack.with(int, java.lang.Object)
PStackX<T> plus(int i, T e)
plus
in interface FluentSequenceX<T>
plus
in interface org.pcollections.PSequence<T>
plus
in interface org.pcollections.PStack<T>
i
- e
- PStack.plus(int, java.lang.Object)
PStackX<T> plus(T e)
plus
in interface FluentCollectionX<T>
plus
in interface FluentSequenceX<T>
plus
in interface org.pcollections.PCollection<T>
plus
in interface org.pcollections.PSequence<T>
plus
in interface org.pcollections.PStack<T>
PStackX<T> plusAll(java.util.Collection<? extends T> list)
plusAll
in interface FluentCollectionX<T>
plusAll
in interface FluentSequenceX<T>
plusAll
in interface org.pcollections.PCollection<T>
plusAll
in interface org.pcollections.PSequence<T>
plusAll
in interface org.pcollections.PStack<T>
PStackX<T> plusAll(int i, java.util.Collection<? extends T> list)
plusAll
in interface FluentSequenceX<T>
plusAll
in interface org.pcollections.PSequence<T>
plusAll
in interface org.pcollections.PStack<T>
i
- list
- PStack.plusAll(int, java.util.Collection)
PStackX<T> minus(int i)
minus
in interface FluentSequenceX<T>
minus
in interface org.pcollections.PSequence<T>
minus
in interface org.pcollections.PStack<T>
i
- PStack.minus(int)
default PStackX<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 PersistentCollectionX<T>
grouped
in interface Traversable<T>
groupSize
- Size of each Groupdefault <K,A,D> PStackX<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 PersistentCollectionX<T>
grouped
in interface Traversable<T>
default <K> PStackX<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 PersistentCollectionX<T>
grouped
in interface Traversable<T>
default <U> PStackX<org.jooq.lambda.tuple.Tuple2<T,U>> zip(java.lang.Iterable<U> other)
zip
in interface CollectionX<T>
zip
in interface PersistentCollectionX<T>
default <U,R> PStackX<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 PersistentCollectionX<T>
zip
in interface Traversable<T>
default PStackX<ReactiveSeq<T>> permutations()
ExtendedTraversable
permutations
in interface CollectionX<T>
permutations
in interface ExtendedTraversable<T>
permutations
in interface PersistentCollectionX<T>
default PStackX<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 PersistentCollectionX<T>
size
- of combinationsdefault PStackX<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 PersistentCollectionX<T>
default PStackX<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 PersistentCollectionX<T>
sliding
in interface Traversable<T>
windowSize
- Size of sliding windowdefault PStackX<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 PersistentCollectionX<T>
sliding
in interface Traversable<T>
windowSize
- number of elements in each batchincrement
- for each windowdefault <U> PStackX<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 PersistentCollectionX<T>
scanLeft
in interface Traversable<T>
default <U> PStackX<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 PersistentCollectionX<T>
scanRight
in interface Traversable<T>
default PStackX<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 PersistentCollectionX<T>
scanLeft
in interface Traversable<T>
default PStackX<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 PersistentCollectionX<T>
scanRight
in interface Traversable<T>
default PStackX<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 PersistentCollectionX<T>
cycle
in interface Traversable<T>
times
- Times values should be repeated within a Streamdefault PStackX<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 PersistentCollectionX<T>
cycle
in interface Traversable<T>
m
- Monoid to be used in reductiontimes
- Number of times value should be repeateddefault PStackX<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 PersistentCollectionX<T>
cycleWhile
in interface Traversable<T>
predicate
- repeat while truedefault PStackX<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 PersistentCollectionX<T>
cycleUntil
in interface Traversable<T>
predicate
- repeat while truedefault <U> PStackX<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 PersistentCollectionX<T>
zipStream
in interface Traversable<T>
default <U> PStackX<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 PersistentCollectionX<T>
zip
in interface Traversable<T>
default <S,U> PStackX<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 PersistentCollectionX<T>
zip3
in interface Traversable<T>
default <T2,T3,T4> PStackX<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 PersistentCollectionX<T>
zip4
in interface Traversable<T>
default PStackX<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 PersistentCollectionX<T>
zipWithIndex
in interface Traversable<T>
default PStackX<T> distinct()
distinct
in interface CollectionX<T>
distinct
in interface PersistentCollectionX<T>
distinct
in interface Traversable<T>
default PStackX<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 PersistentCollectionX<T>
sorted
in interface Traversable<T>
default PStackX<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 PersistentCollectionX<T>
sorted
in interface Traversable<T>
c
- Compartor to sort withdefault PStackX<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 PersistentCollectionX<T>
skipWhile
in interface Traversable<T>
p
- Predicate to skip while truedefault PStackX<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 PersistentCollectionX<T>
skipUntil
in interface Traversable<T>
p
- Predicate to skip until truedefault PStackX<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 PersistentCollectionX<T>
limitWhile
in interface Traversable<T>
p
- Limit while predicate is truedefault PStackX<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 PersistentCollectionX<T>
limitUntil
in interface Traversable<T>
p
- Limit until predicate is truedefault PStackX<T> intersperse(T value)
Traversable
intersperse
in interface PersistentCollectionX<T>
intersperse
in interface Traversable<T>
default PStackX<T> shuffle()
shuffle
in interface PersistentCollectionX<T>
shuffle
in interface Traversable<T>
default PStackX<T> skipLast(int num)
Traversable
skipLast
in interface PersistentCollectionX<T>
skipLast
in interface Traversable<T>
default PStackX<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 PersistentCollectionX<T>
limitLast
in interface Traversable<T>
num
- of elements to return (last elements)default PStackX<T> onEmpty(T value)
onEmpty
in interface PersistentCollectionX<T>
onEmpty
in interface Traversable<T>
default PStackX<T> onEmptyGet(java.util.function.Supplier<T> supplier)
onEmptyGet
in interface PersistentCollectionX<T>
onEmptyGet
in interface Traversable<T>
default <X extends java.lang.Throwable> PStackX<T> onEmptyThrow(java.util.function.Supplier<X> supplier)
onEmptyThrow
in interface PersistentCollectionX<T>
onEmptyThrow
in interface Traversable<T>
default PStackX<T> shuffle(java.util.Random random)
shuffle
in interface PersistentCollectionX<T>
shuffle
in interface Traversable<T>
default <U> PStackX<U> ofType(java.lang.Class<U> type)
Filterable
ofType
in interface Filterable<T>
ofType
in interface PersistentCollectionX<T>
default PStackX<T> filterNot(java.util.function.Predicate<? super T> fn)
filterNot
in interface CollectionX<T>
filterNot
in interface Filterable<T>
filterNot
in interface PersistentCollectionX<T>
default PStackX<T> notNull()
notNull
in interface CollectionX<T>
notNull
in interface Filterable<T>
notNull
in interface PersistentCollectionX<T>
default PStackX<T> removeAll(java.util.stream.Stream<T> stream)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface PersistentCollectionX<T>
default PStackX<T> removeAll(java.lang.Iterable<T> it)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface PersistentCollectionX<T>
default PStackX<T> removeAll(T... values)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface PersistentCollectionX<T>
default PStackX<T> retainAll(java.lang.Iterable<T> it)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface PersistentCollectionX<T>
default PStackX<T> retainAll(java.util.stream.Stream<T> stream)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface PersistentCollectionX<T>
default PStackX<T> retainAll(T... values)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface PersistentCollectionX<T>
default <U> PStackX<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 PersistentCollectionX<T>
default <R> PStackX<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 PersistentCollectionX<T>
case1
- Function to generate a case (or chain of cases as a single case)otherwise
- Value if supplied case doesn't matchdefault <C extends java.util.Collection<? super T>> PStackX<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 PersistentCollectionX<T>
grouped
in interface Traversable<T>
size
- batch sizesupplier
- Collection factorydefault PStackX<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 PersistentCollectionX<T>
groupedUntil
in interface Traversable<T>
predicate
- Batch until predicate holds, then open next batchdefault PStackX<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 PersistentCollectionX<T>
groupedStatefullyWhile
in interface Traversable<T>
predicate
- Window while truedefault PStackX<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 PersistentCollectionX<T>
groupedWhile
in interface Traversable<T>
predicate
- Batch while predicate holds, then open next batchdefault <C extends java.util.Collection<? super T>> PStackX<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 PersistentCollectionX<T>
groupedWhile
in interface Traversable<T>
predicate
- Batch while predicate holds, then open next batchfactory
- Collection factorydefault <C extends java.util.Collection<? super T>> PStackX<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 PersistentCollectionX<T>
groupedUntil
in interface Traversable<T>
predicate
- Batch until predicate holds, then open next batchfactory
- Collection factorydefault PStackX<T> removeAll(org.jooq.lambda.Seq<T> stream)
removeAll
in interface CollectionX<T>
removeAll
in interface PersistentCollectionX<T>
default PStackX<T> retainAll(org.jooq.lambda.Seq<T> stream)
retainAll
in interface CollectionX<T>
retainAll
in interface PersistentCollectionX<T>