public interface CollectionX<T> extends ExtendedTraversable<T>, IterableCollectable<T>, java.lang.Iterable<T>, Sequential<T>, IterableFunctor<T>, Foldable<T>, IterableFilterable<T>, ZippingApplicativable<T>, Unit<T>, java.util.Collection<T>, CyclopsCollectable<T>
Modifier and Type | Method and Description |
---|---|
default <U> CollectionX<U> |
cast(java.lang.Class<U> type)
Cast all elements in a stream to a given type, possibly throwing a
ClassCastException . |
default CyclopsCollectable<T> |
collectable()
Narrow this class to a Collectable
|
CollectionX<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]]
|
CollectionX<ReactiveSeq<T>> |
combinations(int size)
ReactiveSeq.of(1,2,3).combinations(2)
//SequenceM[SequenceM[1,2],SequenceM[1,3],SequenceM[2,3]]
|
CollectionX<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 & reduction operation.
|
CollectionX<T> |
distinct() |
CollectionX<T> |
dropRight(int num) |
CollectionX<T> |
dropUntil(java.util.function.Predicate<? super T> p) |
CollectionX<T> |
dropWhile(java.util.function.Predicate<? super T> p) |
CollectionX<T> |
filter(java.util.function.Predicate<? super T> pred) |
CollectionX<T> |
filterNot(java.util.function.Predicate<? super T> fn) |
default java.util.Optional<T> |
findAny() |
default java.util.Optional<T> |
findFirst() |
<R> CollectionX<R> |
flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper) |
default <R1,R> ReactiveSeq<R> |
forEach2(java.util.function.Function<? super T,java.lang.Iterable<R1>> stream1,
java.util.function.Function<? super T,java.util.function.Function<? super R1,? extends R>> yieldingFunction)
Perform a two level nested internal iteration over this Stream and the
supplied stream
|
default <R1,R> ReactiveSeq<R> |
forEach2(java.util.function.Function<? super T,java.lang.Iterable<R1>> stream1,
java.util.function.Function<? super T,java.util.function.Function<? super R1,java.lang.Boolean>> filterFunction,
java.util.function.Function<? super T,java.util.function.Function<? super R1,? extends R>> yieldingFunction)
Perform a two level nested internal iteration over this Stream and the
supplied stream
|
default <R1,R2,R> ReactiveSeq<R> |
forEach3(java.util.function.Function<? super T,java.lang.Iterable<R1>> stream1,
java.util.function.Function<? super T,java.util.function.Function<? super R1,java.lang.Iterable<R2>>> stream2,
java.util.function.Function<? super T,java.util.function.Function<? super R1,java.util.function.Function<? super R2,? extends R>>> yieldingFunction)
Perform a three level nested internal iteration over this Stream and the
supplied streams
|
default <R1,R2,R> ReactiveSeq<R> |
forEach3(java.util.function.Function<? super T,java.lang.Iterable<R1>> stream1,
java.util.function.Function<? super T,java.util.function.Function<? super R1,java.lang.Iterable<R2>>> stream2,
java.util.function.Function<? super T,java.util.function.Function<? super R1,java.util.function.Function<? super R2,java.lang.Boolean>>> filterFunction,
java.util.function.Function<? super T,java.util.function.Function<? super R1,java.util.function.Function<? super R2,? extends R>>> yieldingFunction)
Perform a three level nested internal iteration over this Stream and the
supplied streams
|
<T1> CollectionX<T1> |
from(java.util.Collection<T1> c) |
static <T> CollectionX<T> |
fromCollection(java.util.Collection<T> col) |
default java.util.Optional<T> |
getAtIndex(int index) |
default <K> MapX<K,java.util.List<T>> |
groupBy(java.util.function.Function<? super T,? extends K> classifier)
Use classifier function to group elements in this Sequence into a Map
|
<K> CollectionX<org.jooq.lambda.tuple.Tuple2<K,org.jooq.lambda.Seq<T>>> |
grouped(java.util.function.Function<? super T,? extends K> classifier) |
<K,A,D> CollectionX<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) |
CollectionX<ListX<T>> |
grouped(int groupSize)
Group elements in a Stream
|
default T |
head() |
default HeadAndTail<T> |
headAndTail()
extract head and tail together, where head is expected to be present
|
CollectionX<T> |
limit(long num)
assertThat(ReactiveSeq.of(4,3,6,7).limit(2).toList(),equalTo(Arrays.asList(4,3)); |
<R> CollectionX<R> |
map(java.util.function.Function<? super T,? extends R> mapper) |
CollectionX<T> |
notNull() |
default <R> CollectionX<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 CollectionX<T> |
peek(java.util.function.Consumer<? super T> c) |
CollectionX<ReactiveSeq<T>> |
permutations()
Generate the permutations based on values in the SequenceM Makes use of
Streamable to store intermediate stages in a collection
|
CollectionX<T> |
removeAll(java.lang.Iterable<T> it) |
CollectionX<T> |
removeAll(org.jooq.lambda.Seq<T> seq) |
CollectionX<T> |
removeAll(java.util.stream.Stream<T> stream) |
CollectionX<T> |
removeAll(T... values) |
CollectionX<T> |
retainAll(java.lang.Iterable<T> it) |
CollectionX<T> |
retainAll(org.jooq.lambda.Seq<T> seq) |
CollectionX<T> |
retainAll(java.util.stream.Stream<T> stream) |
CollectionX<T> |
retainAll(T... values) |
CollectionX<T> |
reverse() |
CollectionX<T> |
scanLeft(Monoid<T> monoid)
Scan left using supplied Monoid
|
<U> CollectionX<U> |
scanLeft(U seed,
java.util.function.BiFunction<U,? super T,U> function)
Scan left
|
CollectionX<T> |
scanRight(Monoid<T> monoid)
Scan right
|
<U> CollectionX<U> |
scanRight(U identity,
java.util.function.BiFunction<? super T,U,U> combiner)
Scan right
|
default T |
single()
//1
ReactiveSeq.of(1).single();
//UnsupportedOperationException
ReactiveSeq.of().single();
//UnsupportedOperationException
ReactiveSeq.of(1,2,3).single();
|
default T |
single(java.util.function.Predicate<? super T> predicate) |
default java.util.Optional<T> |
singleOptional()
//Optional[1]
ReactiveSeq.of(1).singleOptional();
//Optional.empty
ReactiveSeq.of().singleOpional();
//Optional.empty
ReactiveSeq.of(1,2,3).singleOptional();
|
CollectionX<T> |
skip(long num)
assertThat(ReactiveSeq.of(4,3,6,7).skip(2).toList(),equalTo(Arrays.asList(6,7))); |
CollectionX<T> |
slice(long from,
long to) |
CollectionX<ListX<T>> |
sliding(int windowSize)
Create a sliding view over this Sequence
|
CollectionX<ListX<T>> |
sliding(int windowSize,
int increment)
Create a sliding view over this Sequence
|
CollectionX<T> |
sorted()
assertThat(ReactiveSeq.of(4,3,6,7)).sorted().toList(),equalTo(Arrays.asList(3,4,6,7))); |
CollectionX<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) |
default ReactiveSeq<T> |
stream() |
CollectionX<T> |
takeRight(int num) |
CollectionX<T> |
takeUntil(java.util.function.Predicate<? super T> p) |
CollectionX<T> |
takeWhile(java.util.function.Predicate<? super T> p) |
<R> CollectionX<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
|
<U> CollectionX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(java.lang.Iterable<U> other) |
<U,R> CollectionX<R> |
zip(java.lang.Iterable<U> other,
java.util.function.BiFunction<? super T,? super U,? extends R> zipper) |
<U> CollectionX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zipStream(java.util.stream.Stream<U> other)
Zip 2 streams into one
|
CollectionX<org.jooq.lambda.tuple.Tuple2<T,java.lang.Long>> |
zipWithIndex()
Add an index to the current Stream
|
xMatch
fixedDelay, onePer, xPer
ofType
ap1, ap2, ap3, ap4, ap5, applicatives
flatMapPublisher, flatMapPublisher, flatMapPublisher, mergePublisher, mergePublisher, unitIterator
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, toArray, toArray
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> CollectionX<T> fromCollection(java.util.Collection<T> col)
default ReactiveSeq<T> stream()
stream
in interface java.util.Collection<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>
default CyclopsCollectable<T> collectable()
CyclopsCollectable
collectable
in interface CyclopsCollectable<T>
collectable
in interface IterableFunctor<T>
default java.util.Optional<T> getAtIndex(int index)
default HeadAndTail<T> headAndTail()
Traversable
{ @code SequenceM<String> helloWorld = ReactiveSeq.of("hello", "world", "last"); HeadAndTail<String> headAndTail = helloWorld.headAndTail(); String head = headAndTail.head(); assertThat(head, equalTo("hello")); SequenceM<String> tail = headAndTail.tail(); assertThat(tail.headAndTail().head(), equalTo("world")); }
headAndTail
in interface Traversable<T>
default T head()
<T1> CollectionX<T1> from(java.util.Collection<T1> c)
CollectionX<T> reverse()
reverse
in interface Traversable<T>
default T single()
//1
ReactiveSeq.of(1).single();
//UnsupportedOperationException
ReactiveSeq.of().single();
//UnsupportedOperationException
ReactiveSeq.of(1,2,3).single();
single
in interface Traversable<T>
default T single(java.util.function.Predicate<? super T> predicate)
single
in interface Traversable<T>
default java.util.Optional<T> singleOptional()
//Optional[1]
ReactiveSeq.of(1).singleOptional();
//Optional.empty
ReactiveSeq.of().singleOpional();
//Optional.empty
ReactiveSeq.of(1,2,3).singleOptional();
singleOptional
in interface Traversable<T>
default java.util.Optional<T> findFirst()
findFirst
in interface Traversable<T>
ReactiveSeq.of(1,2,3,4,5).filter(it -> it <3).findFirst().get();
//3
(deterministic)default java.util.Optional<T> findAny()
findAny
in interface Traversable<T>
ReactiveSeq.of(1,2,3,4,5).filter(it -> it <3).findAny().get();
//3
(non-deterministic)default <K> MapX<K,java.util.List<T>> groupBy(java.util.function.Function<? super T,? extends K> classifier)
Traversable
{ @code Map<Integer, List<Integer>> map1 = of(1, 2, 3, 4).groupBy(i -> i % 2); assertEquals(asList(2, 4), map1.get(0)); assertEquals(asList(1, 3), map1.get(1)); assertEquals(2, map1.size()); }
groupBy
in interface Traversable<T>
CollectionX<T> filter(java.util.function.Predicate<? super T> pred)
filter
in interface Filterable<T>
<R> CollectionX<R> map(java.util.function.Function<? super T,? extends R> mapper)
<R> CollectionX<R> flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper)
CollectionX<T> limit(long num)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).limit(2).toList(),equalTo(Arrays.asList(4,3));
limit
in interface Traversable<T>
num
- Limit element size to numCollectionX<T> skip(long num)
Traversable
assertThat(ReactiveSeq.of(4,3,6,7).skip(2).toList(),equalTo(Arrays.asList(6,7)));
skip
in interface Traversable<T>
num
- Number of elemenets to skipCollectionX<T> takeWhile(java.util.function.Predicate<? super T> p)
takeWhile
in interface Traversable<T>
CollectionX<T> dropWhile(java.util.function.Predicate<? super T> p)
dropWhile
in interface Traversable<T>
CollectionX<T> takeUntil(java.util.function.Predicate<? super T> p)
takeUntil
in interface Traversable<T>
CollectionX<T> dropUntil(java.util.function.Predicate<? super T> p)
dropUntil
in interface Traversable<T>
CollectionX<T> dropRight(int num)
dropRight
in interface Traversable<T>
CollectionX<T> takeRight(int num)
takeRight
in interface Traversable<T>
default CollectionX<T> peek(java.util.function.Consumer<? super T> c)
CollectionX<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 Traversable<T>
groupSize
- Size of each Group<K,A,D> CollectionX<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 Traversable<T>
<K> CollectionX<org.jooq.lambda.tuple.Tuple2<K,org.jooq.lambda.Seq<T>>> grouped(java.util.function.Function<? super T,? extends K> classifier)
grouped
in interface Traversable<T>
CollectionX<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 Traversable<T>
predicate
- Test to see if two neighbours should be joinedop
- Reducer to combine neighbours<U> CollectionX<org.jooq.lambda.tuple.Tuple2<T,U>> zip(java.lang.Iterable<U> other)
<U,R> CollectionX<R> zip(java.lang.Iterable<U> other, java.util.function.BiFunction<? super T,? super U,? extends R> zipper)
zip
in interface Traversable<T>
<U> CollectionX<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 Traversable<T>
CollectionX<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 Traversable<T>
CollectionX<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 Traversable<T>
windowSize
- Size of sliding windowCollectionX<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 Traversable<T>
windowSize
- number of elements in each batchincrement
- for each windowCollectionX<T> scanLeft(Monoid<T> monoid)
Traversable
assertEquals(asList("", "a", "ab", "abc"),ReactiveSeq.of("a", "b", "c")
.scanLeft(Reducers.toString("")).toList());
scanLeft
in interface Traversable<T>
<U> CollectionX<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 Traversable<T>
CollectionX<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 Traversable<T>
<U> CollectionX<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 Traversable<T>
CollectionX<T> distinct()
distinct
in interface Traversable<T>
CollectionX<T> sorted()
Traversable
assertThat(ReactiveSeq.of(4,3,6,7)).sorted().toList(),equalTo(Arrays.asList(3,4,6,7)));
sorted
in interface Traversable<T>
CollectionX<T> removeAll(java.util.stream.Stream<T> stream)
removeAll
in interface IterableFilterable<T>
CollectionX<T> removeAll(java.lang.Iterable<T> it)
removeAll
in interface IterableFilterable<T>
CollectionX<T> removeAll(org.jooq.lambda.Seq<T> seq)
CollectionX<T> removeAll(T... values)
removeAll
in interface IterableFilterable<T>
CollectionX<T> retainAll(java.lang.Iterable<T> it)
retainAll
in interface IterableFilterable<T>
CollectionX<T> retainAll(org.jooq.lambda.Seq<T> seq)
CollectionX<T> retainAll(java.util.stream.Stream<T> stream)
retainAll
in interface IterableFilterable<T>
CollectionX<T> retainAll(T... values)
retainAll
in interface IterableFilterable<T>
CollectionX<T> filterNot(java.util.function.Predicate<? super T> fn)
filterNot
in interface Filterable<T>
CollectionX<T> notNull()
notNull
in interface Filterable<T>
<R> CollectionX<R> trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
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 Functor<T>
mapper
- default <R1,R2,R> ReactiveSeq<R> forEach3(java.util.function.Function<? super T,java.lang.Iterable<R1>> stream1, java.util.function.Function<? super T,java.util.function.Function<? super R1,java.lang.Iterable<R2>>> stream2, java.util.function.Function<? super T,java.util.function.Function<? super R1,java.util.function.Function<? super R2,? extends R>>> yieldingFunction)
ReactiveSeq.of(1,2)
.forEach3(a->IntStream.range(10,13),
a->b->Stream.of(""+(a+b),"hello world"),
a->b->c->c+":"a+":"+b);
//SequenceM[11:1:2,hello world:1:2,14:1:4,hello world:1:4,12:1:2,hello world:1:2,15:1:5,hello world:1:5]
stream1
- Nested Stream to iterate overstream2
- Nested Stream to iterate overyieldingFunction
- Function with pointers to the current element from both
Streams that generates the new elementsdefault <R1,R2,R> ReactiveSeq<R> forEach3(java.util.function.Function<? super T,java.lang.Iterable<R1>> stream1, java.util.function.Function<? super T,java.util.function.Function<? super R1,java.lang.Iterable<R2>>> stream2, java.util.function.Function<? super T,java.util.function.Function<? super R1,java.util.function.Function<? super R2,java.lang.Boolean>>> filterFunction, java.util.function.Function<? super T,java.util.function.Function<? super R1,java.util.function.Function<? super R2,? extends R>>> yieldingFunction)
ReactiveSeq.of(1,2,3)
.forEach3(a->IntStream.range(10,13),
a->b->Stream.of(""+(a+b),"hello world"),
a->b->c-> c!=3,
a->b->c->c+":"a+":"+b);
//SequenceM[11:1:2,hello world:1:2,14:1:4,hello world:1:4,12:1:2,hello world:1:2,15:1:5,hello world:1:5]
stream1
- Nested Stream to iterate overstream2
- Nested Stream to iterate overfilterFunction
- Filter to apply over elements before passing non-filtered
values to the yielding functionyieldingFunction
- Function with pointers to the current element from both
Streams that generates the new elementsdefault <R1,R> ReactiveSeq<R> forEach2(java.util.function.Function<? super T,java.lang.Iterable<R1>> stream1, java.util.function.Function<? super T,java.util.function.Function<? super R1,? extends R>> yieldingFunction)
ReactiveSeq.of(1,2,3)
.forEach2(a->IntStream.range(10,13),
a->b->a+b);
//SequenceM[11,14,12,15,13,16]
stream1
- Nested Stream to iterate overyieldingFunction
- Function with pointers to the current element from both
Streams that generates the new elementsdefault <R1,R> ReactiveSeq<R> forEach2(java.util.function.Function<? super T,java.lang.Iterable<R1>> stream1, java.util.function.Function<? super T,java.util.function.Function<? super R1,java.lang.Boolean>> filterFunction, java.util.function.Function<? super T,java.util.function.Function<? super R1,? extends R>> yieldingFunction)
ReactiveSeq.of(1,2,3)
.forEach2(a->IntStream.range(10,13),
a->b-> a<3 && b>10,
a->b->a+b);
//SequenceM[14,15]
stream1
- Nested Stream to iterate overfilterFunction
- Filter to apply over elements before passing non-filtered
values to the yielding functionyieldingFunction
- Function with pointers to the current element from both
Streams that generates the new elementsCollectionX<T> slice(long from, long to)
slice
in interface Traversable<T>
<U extends java.lang.Comparable<? super U>> CollectionX<T> sorted(java.util.function.Function<? super T,? extends U> function)
sorted
in interface Traversable<T>
CollectionX<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 Traversable<T>
c
- Compartor to sort withCollectionX<ReactiveSeq<T>> permutations()
ExtendedTraversable
permutations
in interface ExtendedTraversable<T>
CollectionX<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 ExtendedTraversable<T>
size
- of combinationsCollectionX<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 ExtendedTraversable<T>
default <U> CollectionX<U> cast(java.lang.Class<U> type)
Functor
ClassCastException
.
// ClassCastException ReactiveSeq.of(1, "a", 2, "b", 3).cast(Integer.class)default <R> CollectionX<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 Functor<T>
case1
- Function to generate a case (or chain of cases as a single case)otherwise
- Value if supplied case doesn't match