public interface SetX<T> extends java.util.Set<T>, MutableCollectionX<T>
Modifier and Type | Method and Description |
---|---|
default <U> SetX<U> |
cast(java.lang.Class<U> type)
Cast all elements in a stream to a given type, possibly throwing a
ClassCastException . |
default SetX<T> |
combine(java.util.function.BiPredicate<? super T,? super T> predicate,
java.util.function.BinaryOperator<T> op)
Combine two adjacent elements in a SetX 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.Set<T>> |
defaultCollector() |
default SetX<T> |
distinct() |
default SetX<T> |
dropRight(int num) |
default SetX<T> |
dropUntil(java.util.function.Predicate<? super T> p) |
default SetX<T> |
dropWhile(java.util.function.Predicate<? super T> p) |
static <T> SetX<T> |
empty() |
default SetX<T> |
filter(java.util.function.Predicate<? super T> pred) |
default SetX<T> |
filterNot(java.util.function.Predicate<? super T> fn) |
default <R> SetX<R> |
flatMap(java.util.function.Function<? super T,? extends java.lang.Iterable<? extends R>> mapper) |
default <T1> SetX<T1> |
from(java.util.Collection<T1> c) |
static <T> SetX<T> |
fromIterable(java.util.stream.Collector<T,?,java.util.Set<T>> collector,
java.lang.Iterable<T> it) |
static <T> SetX<T> |
fromIterable(java.lang.Iterable<T> it) |
default <X> SetX<X> |
fromStream(java.util.stream.Stream<X> stream) |
<T> java.util.stream.Collector<T,?,java.util.Set<T>> |
getCollector() |
default <K> SetX<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> SetX<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 SetX<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 SetX<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 SetX<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 SetX<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.Set<T>> |
immutableCollector() |
default SetX<T> |
intersperse(T value)
Returns a stream with a given value interspersed between any two values
of this stream.
|
default SetX<T> |
limit(long num)
assertThat(ReactiveSeq.of(4,3,6,7).limit(2).toList(),equalTo(Arrays.asList(4,3)); |
default SetX<T> |
limitLast(int num)
Limit results to the last x elements in a SequenceM
|
default SetX<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 SetX<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> SetX<R> |
map(java.util.function.Function<? super T,? extends R> mapper) |
default SetX<T> |
minus(java.lang.Object e) |
default SetX<T> |
minusAll(java.util.Collection<?> list) |
default SetX<T> |
notNull() |
static <T> SetX<T> |
of(T... values) |
default <U> SetX<U> |
ofType(java.lang.Class<U> type)
Keep only those elements in a stream that are of a given type.
|
default SetX<T> |
onEmpty(T value) |
default SetX<T> |
onEmptyGet(java.util.function.Supplier<T> supplier) |
default <X extends java.lang.Throwable> |
onEmptyThrow(java.util.function.Supplier<X> supplier) |
default <R> SetX<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 SetX<T> |
plus(T e) |
default SetX<T> |
plusAll(java.util.Collection<? extends T> list) |
default SetX<T> |
removeAll(java.lang.Iterable<T> it) |
default SetX<T> |
removeAll(org.jooq.lambda.Seq<T> stream) |
default SetX<T> |
removeAll(java.util.stream.Stream<T> stream) |
default SetX<T> |
removeAll(T... values) |
default SetX<T> |
retainAll(java.lang.Iterable<T> it) |
default SetX<T> |
retainAll(org.jooq.lambda.Seq<T> stream) |
default SetX<T> |
retainAll(java.util.stream.Stream<T> stream) |
default SetX<T> |
retainAll(T... values) |
default SetX<T> |
reverse() |
default SetX<T> |
scanLeft(Monoid<T> monoid)
Scan left using supplied Monoid
|
default <U> SetX<U> |
scanLeft(U seed,
java.util.function.BiFunction<U,? super T,U> function)
Scan left
|
default SetX<T> |
scanRight(Monoid<T> monoid)
Scan right
|
default <U> SetX<U> |
scanRight(U identity,
java.util.function.BiFunction<? super T,U,U> combiner)
Scan right
|
default SetX<T> |
shuffle() |
default SetX<T> |
shuffle(java.util.Random random) |
static <T> SetX<T> |
singleton(T value) |
default SetX<T> |
skip(long num)
assertThat(ReactiveSeq.of(4,3,6,7).skip(2).toList(),equalTo(Arrays.asList(6,7))); |
default SetX<T> |
skipLast(int num)
assertThat(ReactiveSeq.of(1,2,3,4,5) .skipLast(2)
.collect(Collectors.toList()),equalTo(Arrays.asList(1,2,3)));
|
default SetX<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 SetX<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 SetX<T> |
slice(long from,
long to) |
default SetX<ListX<T>> |
sliding(int windowSize)
Create a sliding view over this Sequence
|
default SetX<ListX<T>> |
sliding(int windowSize,
int increment)
Create a sliding view over this Sequence
|
default SetX<T> |
sorted()
assertThat(ReactiveSeq.of(4,3,6,7)).sorted().toList(),equalTo(Arrays.asList(3,4,6,7))); |
default SetX<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() |
default SetX<T> |
takeRight(int num) |
default SetX<T> |
takeUntil(java.util.function.Predicate<? super T> p) |
default SetX<T> |
takeWhile(java.util.function.Predicate<? super T> p) |
default SetX<T> |
toSetX() |
default <R> SetX<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> SetX<R> |
unit(java.util.Collection<R> col) |
default <R> SetX<R> |
unit(R value) |
default <R> SetX<R> |
unitIterator(java.util.Iterator<R> it) |
default <U> SetX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(java.lang.Iterable<U> other) |
default <U,R> SetX<R> |
zip(java.lang.Iterable<U> other,
java.util.function.BiFunction<? super T,? super U,? extends R> zipper) |
default <U> SetX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zip(org.jooq.lambda.Seq<U> other)
Zip 2 streams into one
|
default <S,U> SetX<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> SetX<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> SetX<org.jooq.lambda.tuple.Tuple2<T,U>> |
zipStream(java.util.stream.Stream<U> other)
Zip 2 streams into one
|
default SetX<org.jooq.lambda.tuple.Tuple2<T,java.lang.Long>> |
zipWithIndex()
Add an index to the current Stream
|
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, spliterator, toArray, toArray
combinations, combinations, permutations
plusInOrder
collectable, findAny, findFirst, forEach2, forEach2, forEach3, forEach3, fromCollection, getAtIndex, groupBy, head, headAndTail, peek, single, single, singleOptional
xMatch
fixedDelay, onePer, xPer
ap1, ap2, ap3, ap4, ap5, applicatives
flatMapPublisher, flatMapPublisher, flatMapPublisher, mergePublisher, mergePublisher
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> java.util.stream.Collector<T,?,java.util.Set<T>> defaultCollector()
static <T> java.util.stream.Collector<T,?,java.util.Set<T>> immutableCollector()
static <T> SetX<T> empty()
@SafeVarargs static <T> SetX<T> of(T... values)
static <T> SetX<T> singleton(T value)
static <T> SetX<T> fromIterable(java.lang.Iterable<T> it)
static <T> SetX<T> fromIterable(java.util.stream.Collector<T,?,java.util.Set<T>> collector, java.lang.Iterable<T> it)
default SetX<T> combine(java.util.function.BiPredicate<? super T,? super T> predicate, java.util.function.BinaryOperator<T> op)
SetX.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 SetX<T> toSetX()
toSetX
in interface ConvertableSequence<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 Traversable<T>
default <R> SetX<R> unit(java.util.Collection<R> col)
unit
in interface FluentCollectionX<T>
default <R> SetX<R> unitIterator(java.util.Iterator<R> it)
unitIterator
in interface IterableFunctor<T>
default <T1> SetX<T1> from(java.util.Collection<T1> c)
from
in interface CollectionX<T>
<T> java.util.stream.Collector<T,?,java.util.Set<T>> getCollector()
default <X> SetX<X> fromStream(java.util.stream.Stream<X> stream)
fromStream
in interface MutableCollectionX<T>
default SetX<T> reverse()
reverse
in interface CollectionX<T>
reverse
in interface MutableCollectionX<T>
reverse
in interface Traversable<T>
default SetX<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> SetX<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> SetX<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 SetX<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 SetX<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 SetX<T> takeRight(int num)
takeRight
in interface CollectionX<T>
takeRight
in interface MutableCollectionX<T>
takeRight
in interface Traversable<T>
default SetX<T> dropRight(int num)
dropRight
in interface CollectionX<T>
dropRight
in interface MutableCollectionX<T>
dropRight
in interface Traversable<T>
default SetX<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 SetX<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 SetX<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 SetX<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> SetX<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 SetX<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>> SetX<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 SetX<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> SetX<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> SetX<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> SetX<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> SetX<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 SetX<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 SetX<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 SetX<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> SetX<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 SetX<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> SetX<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 SetX<T> plus(T e)
plus
in interface FluentCollectionX<T>
plus
in interface MutableCollectionX<T>
default SetX<T> plusAll(java.util.Collection<? extends T> list)
plusAll
in interface FluentCollectionX<T>
plusAll
in interface MutableCollectionX<T>
default SetX<T> minus(java.lang.Object e)
minus
in interface FluentCollectionX<T>
minus
in interface MutableCollectionX<T>
default SetX<T> minusAll(java.util.Collection<?> list)
minusAll
in interface FluentCollectionX<T>
minusAll
in interface MutableCollectionX<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> SetX<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> SetX<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> SetX<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> SetX<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 SetX<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 SetX<T> distinct()
distinct
in interface CollectionX<T>
distinct
in interface MutableCollectionX<T>
distinct
in interface Traversable<T>
default SetX<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 SetX<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 SetX<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 SetX<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 SetX<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 SetX<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 SetX<T> intersperse(T value)
Traversable
intersperse
in interface MutableCollectionX<T>
intersperse
in interface Traversable<T>
default SetX<T> shuffle()
shuffle
in interface MutableCollectionX<T>
shuffle
in interface Traversable<T>
default SetX<T> skipLast(int num)
Traversable
skipLast
in interface MutableCollectionX<T>
skipLast
in interface Traversable<T>
default SetX<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 SetX<T> onEmpty(T value)
onEmpty
in interface MutableCollectionX<T>
onEmpty
in interface Traversable<T>
default SetX<T> onEmptyGet(java.util.function.Supplier<T> supplier)
onEmptyGet
in interface MutableCollectionX<T>
onEmptyGet
in interface Traversable<T>
default <X extends java.lang.Throwable> SetX<T> onEmptyThrow(java.util.function.Supplier<X> supplier)
onEmptyThrow
in interface MutableCollectionX<T>
onEmptyThrow
in interface Traversable<T>
default SetX<T> shuffle(java.util.Random random)
shuffle
in interface MutableCollectionX<T>
shuffle
in interface Traversable<T>
default <U> SetX<U> ofType(java.lang.Class<U> type)
Filterable
ofType
in interface Filterable<T>
ofType
in interface MutableCollectionX<T>
default SetX<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 SetX<T> notNull()
notNull
in interface CollectionX<T>
notNull
in interface Filterable<T>
notNull
in interface MutableCollectionX<T>
default SetX<T> removeAll(java.util.stream.Stream<T> stream)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface MutableCollectionX<T>
default SetX<T> removeAll(java.lang.Iterable<T> it)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface MutableCollectionX<T>
default SetX<T> removeAll(T... values)
removeAll
in interface CollectionX<T>
removeAll
in interface IterableFilterable<T>
removeAll
in interface MutableCollectionX<T>
default SetX<T> retainAll(java.lang.Iterable<T> it)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface MutableCollectionX<T>
default SetX<T> retainAll(java.util.stream.Stream<T> stream)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface MutableCollectionX<T>
default SetX<T> retainAll(T... values)
retainAll
in interface CollectionX<T>
retainAll
in interface IterableFilterable<T>
retainAll
in interface MutableCollectionX<T>
default <U> SetX<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 <R> SetX<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 <C extends java.util.Collection<? super T>> SetX<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 SetX<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 SetX<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>> SetX<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>> SetX<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 SetX<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 SetX<T> removeAll(org.jooq.lambda.Seq<T> stream)
removeAll
in interface CollectionX<T>
removeAll
in interface MutableCollectionX<T>
default SetX<T> retainAll(org.jooq.lambda.Seq<T> stream)
retainAll
in interface CollectionX<T>
retainAll
in interface MutableCollectionX<T>