public class StreamUtils
extends java.lang.Object
| Constructor and Description |
|---|
StreamUtils() |
| Modifier and Type | Method and Description |
|---|---|
static <T,A,R> java.util.List<R> |
collect(java.util.stream.Stream<T> stream,
java.lang.Iterable<java.util.stream.Collector> collectors)
Apply multiple Collectors, simultaneously to a Stream
|
static <T,A,R> java.util.List<R> |
collect(java.util.stream.Stream<T> stream,
java.util.stream.Stream<java.util.stream.Collector> collectors)
Apply multiple Collectors, simultaneously to a Stream
|
static <T> java.util.List |
collect(java.util.stream.Stream<T> stream,
Streamable<java.util.stream.Collector> collectors)
Apply multiple Collectors, simultaneously to a Stream
|
static <U> java.util.stream.Stream<U> |
concat(java.lang.Object o,
java.util.stream.Stream<U> stream)
Concat an Object and a Stream
If the Object is a Stream, Streamable or Iterable will be converted (or left) in Stream form and concatonated
Otherwise a new Stream.of(o) is created
|
static <U> java.util.stream.Stream<U> |
cycle(int times,
Streamable<U> s)
Create a Stream that infiniteable cycles the provided Streamable
|
static <U> java.util.stream.Stream<U> |
cycle(java.util.stream.Stream<U> s)
Create a new Stream that infiniteable cycles the provided Stream
|
static <U> java.util.stream.Stream<U> |
cycle(Streamable<U> s)
Create a Stream that infiniteable cycles the provided Streamable
|
static <T> HeadAndTail<T> |
headAndTail(java.util.stream.Stream<T> stream) |
static <T> java.util.Optional<HeadAndTail<T>> |
headAndTailOptional(java.util.stream.Stream<T> stream) |
static <U> java.util.stream.Stream<U> |
limitUntil(java.util.stream.Stream<U> stream,
java.util.function.Predicate<? super U> predicate)
Take elements from a Stream until the predicate holds
|
static <U> java.util.stream.Stream<U> |
limitWhile(java.util.stream.Stream<U> stream,
java.util.function.Predicate<? super U> predicate)
Take elements from a stream while the predicates hold
|
static <R> java.util.List<R> |
reduce(java.util.stream.Stream<R> stream,
java.lang.Iterable<Monoid<R>> reducers)
Simultanously reduce a stream with multiple reducers
|
static <R> java.util.List<R> |
reduce(java.util.stream.Stream<R> stream,
java.util.stream.Stream<Monoid<R>> reducers)
Simultanously reduce a stream with multiple reducers
|
static <U> java.util.stream.Stream<U> |
reverse(java.util.stream.Stream<U> stream)
Reverse a Stream
|
static <U> java.util.stream.Stream<U> |
reversedStream(java.util.List<U> list)
Create a reversed Stream from a List
|
static <U> java.util.stream.Stream<U> |
skipUntil(java.util.stream.Stream<U> stream,
java.util.function.Predicate<? super U> predicate)
skip elements in Stream until Predicate holds true
|
static <U> java.util.stream.Stream<U> |
skipWhile(java.util.stream.Stream<U> stream,
java.util.function.Predicate<? super U> predicate)
skip elements in a Stream while Predicate holds true
|
static <U> java.util.stream.Stream<U> |
stream(java.lang.Iterable<U> it)
Create a stream from an iterable
|
static <U> java.util.stream.Stream<U> |
stream(java.util.Iterator<U> it)
Create a stream from an iterator
|
static <K,V> java.util.stream.Stream<java.util.Map.Entry<K,V>> |
stream(java.util.Map<K,V> it)
Create a stream from a map
|
public static final <T> HeadAndTail<T> headAndTail(java.util.stream.Stream<T> stream)
public static final <T> java.util.Optional<HeadAndTail<T>> headAndTailOptional(java.util.stream.Stream<T> stream)
public static <U> java.util.stream.Stream<U> skipUntil(java.util.stream.Stream<U> stream,
java.util.function.Predicate<? super U> predicate)
StreamUtils.skipUntil(Stream.of(4,3,6,7),i->i==6).collect(Collectors.toList())
// [6,7]
stream - Stream to skip elements frompredicate - to applypublic static <U> java.util.stream.Stream<U> skipWhile(java.util.stream.Stream<U> stream,
java.util.function.Predicate<? super U> predicate)
StreamUtils.skipWhile(Stream.of(4,3,6,7).sorted(),i->i<6).collect(Collectors.toList())
// [6,7]
stream - predicate - public static <U> java.util.stream.Stream<U> limitWhile(java.util.stream.Stream<U> stream,
java.util.function.Predicate<? super U> predicate)
StreamUtils.limitWhile(Stream.of(4,3,6,7).sorted(),i->i<6).collect(Collectors.toList());
//[4,3]
stream - predicate - public static <U> java.util.stream.Stream<U> limitUntil(java.util.stream.Stream<U> stream,
java.util.function.Predicate<? super U> predicate)
StreamUtils.limitUntil(Stream.of(4,3,6,7),i->i==6).collect(Collectors.toList());
//[4,3]
stream - predicate - public static <U> java.util.stream.Stream<U> reverse(java.util.stream.Stream<U> stream)
stream - Stream to reversepublic static <U> java.util.stream.Stream<U> reversedStream(java.util.List<U> list)
list - List to create a reversed Stream frompublic static <U> java.util.stream.Stream<U> cycle(java.util.stream.Stream<U> s)
s - Stream to cyclepublic static <U> java.util.stream.Stream<U> cycle(Streamable<U> s)
s - Streamable to cyclepublic static <U> java.util.stream.Stream<U> cycle(int times,
Streamable<U> s)
s - Streamable to cyclepublic static <U> java.util.stream.Stream<U> stream(java.lang.Iterable<U> it)
it - Iterable to convert to a Streampublic static <U> java.util.stream.Stream<U> stream(java.util.Iterator<U> it)
it - Iterator to convert to a Streampublic static <U> java.util.stream.Stream<U> concat(java.lang.Object o,
java.util.stream.Stream<U> stream)
o - Object to concatstream - Stream to concatpublic static <K,V> java.util.stream.Stream<java.util.Map.Entry<K,V>> stream(java.util.Map<K,V> it)
it - Iterator to convert to a Streampublic static <R> java.util.List<R> reduce(java.util.stream.Stream<R> stream,
java.lang.Iterable<Monoid<R>> reducers)
Monoid<Integer> sum = Monoid.of(0,(a,b)->a+b);
Monoid<Integer> mult = Monoid.of(1,(a,b)->a*b);
val result = StreamUtils.reduce(Stream.of(1,2,3,4),Arrays.asList(sum,mult));
assertThat(result,equalTo(Arrays.asList(10,24)));
stream - Stream to reducereducers - Reducers to reduce Streampublic static <R> java.util.List<R> reduce(java.util.stream.Stream<R> stream,
java.util.stream.Stream<Monoid<R>> reducers)
stream - Stream to reducereducers - Reducers to reduce Streampublic static <T,A,R> java.util.List<R> collect(java.util.stream.Stream<T> stream,
java.util.stream.Stream<java.util.stream.Collector> collectors)
stream - Stream to collectcollectors - Collectors to applypublic static <T,A,R> java.util.List<R> collect(java.util.stream.Stream<T> stream,
java.lang.Iterable<java.util.stream.Collector> collectors)
stream - Stream to collectcollectors - Collectors to applypublic static <T> java.util.List collect(java.util.stream.Stream<T> stream,
Streamable<java.util.stream.Collector> collectors)
stream - Stream to collectcollectors - Collectors to apply