T - the type of the stream elementspublic class Stream<T> extends Object
| Modifier and Type | Method and Description |
|---|---|
boolean |
allMatch(Predicate<? super T> predicate)
Tests whether all elements match the given predicate.
|
boolean |
anyMatch(Predicate<? super T> predicate)
Tests whether any elements match the given predicate.
|
<R,A> R |
collect(Collector<? super T,A,R> collector)
Collects elements with
collector that encapsulates supplier, accumulator and combiner functions. |
<R> R |
collect(Supplier<R> supplier,
BiConsumer<R,? super T> accumulator)
Collects elements to
supplier provided container by applying the given accumulation function. |
static <T> Stream<T> |
concat(Stream<? extends T> stream1,
Stream<? extends T> stream2)
Concatenates two streams.
|
long |
count()
Counts the number of elements in this stream.
|
<R> R |
custom(Function<Stream<T>,R> function)
Applies custom operator on stream.
|
Stream<T> |
distinct()
Returns
Stream with distinct elements (as determinated by equals method). |
Stream<T> |
filter(Predicate<? super T> predicate)
Returns
Stream with elements that satisfy the given predicate. |
Optional<T> |
findFirst()
Returns the first element wrapped by
Optional class. |
<R> Stream<R> |
flatMap(Function<? super T,? extends Stream<? extends R>> mapper)
Generates
Stream by concatenating elements that obtained by applying the given function. |
void |
forEach(Consumer<? super T> action)
Performs the given action to each element.
|
static <T> Stream<T> |
generate(Supplier<T> supplier)
Creates a
Stream by elements that generated by Supplier. |
Iterator<? extends T> |
getIterator()
Returns internal stream iterator.
|
<K> Stream<Map.Entry<K,List<T>>> |
groupBy(Function<? super T,? extends K> classifier)
Partitions
Stream into Map entries according to the given classifier function. |
static <T> Stream<T> |
iterate(T seed,
UnaryOperator<T> op)
Creates a
Stream by applying UnaryOperator operation to an initial element seed. |
Stream<T> |
limit(long maxSize)
Returns
Stream with first maxSize elements. |
<R> Stream<R> |
map(Function<? super T,? extends R> mapper)
Returns
Stream with elements that obtained by applying the given function. |
Optional<T> |
max(Comparator<? super T> comparator)
Finds the maximum element according to the given comparator.
|
Optional<T> |
min(Comparator<? super T> comparator)
Finds the minimum element according to the given comparator.
|
boolean |
noneMatch(Predicate<? super T> predicate)
Tests whether no elements match the given predicate.
|
static <T> Stream<T> |
of(Iterable<? extends T> iterable)
Creates a
Stream from any class that implements Iterable interface. |
static <T> Stream<T> |
of(Iterator<? extends T> iterator)
Creates a
Stream from any class that implements Iterator interface. |
static <T> Stream<T> |
of(List<? extends T> list)
Creates a
Stream from List. |
static <K,V> Stream<Map.Entry<K,V>> |
of(Map<K,V> map)
Creates a
Stream from Map entries. |
static <T> Stream<T> |
of(T... elements)
Creates a
Stream from the specified values. |
static Stream<Integer> |
ofRange(int from,
int to)
Creates a
Stream<Integer> from not closed range
(from from inclusive to to exclusive and incremental step 1). |
static Stream<Long> |
ofRange(long from,
long to)
Creates a
Stream<Long> from not closed range
(from from inclusive to to exclusive and incremental step 1). |
static Stream<Integer> |
ofRangeClosed(int from,
int to)
Creates a
Stream<Integer> from closed range
(from from inclusive to to inclusive and incremental step 1). |
static Stream<Long> |
ofRangeClosed(long from,
long to)
Creates a
Stream<Long> from closed range
(from from inclusive to to inclusive and incremental step 1). |
Stream<T> |
peek(Consumer<? super T> action)
Perform provided action to each elements.
|
Optional<T> |
reduce(BiFunction<T,T,T> accumulator)
Reduces the elements using provided associative accumulation function.
|
T |
reduce(T identity,
BiFunction<T,T,T> accumulator)
Reduces the elements using provided identity value and the associative accumulation function.
|
Stream<T> |
skip(long n)
Skips first
n elements and returns Stream with remaining elements. |
<R extends Comparable> |
sortBy(Function<? super T,? extends R> f)
Returns
Stream with sorted elements (as determinated by Comparable interface). |
Stream<T> |
sorted()
Returns
Stream with sorted elements (as determinated by Comparable interface). |
Stream<T> |
sorted(Comparator<? super T> comparator)
Returns
Stream with sorted elements (as determinated by provided Comparator). |
public static <T> Stream<T> of(List<? extends T> list)
Stream from List.T - the type of the stream elementslist - the list with elements to be passed to streampublic static <K,V> Stream<Map.Entry<K,V>> of(Map<K,V> map)
Stream from Map entries.K - the type of map keysV - the type of map valuesmap - the map with elements to be passed to streampublic static <T> Stream<T> of(Iterator<? extends T> iterator)
Stream from any class that implements Iterator interface.T - the type of the stream elementsiterator - the iterator with elements to be passed to streampublic static <T> Stream<T> of(Iterable<? extends T> iterable)
Stream from any class that implements Iterable interface.T - the type of the stream elementsiterable - the iterable with elements to be passed to streampublic static <T> Stream<T> of(T... elements)
Stream from the specified values.T - the type of the stream elementselements - the elements to be passed to streampublic static Stream<Integer> ofRange(int from, int to)
Stream<Integer> from not closed range
(from from inclusive to to exclusive and incremental step 1).from - the initial value (inclusive)to - the upper bound (exclusive)public static Stream<Long> ofRange(long from, long to)
Stream<Long> from not closed range
(from from inclusive to to exclusive and incremental step 1).from - the initial value (inclusive)to - the upper bound (exclusive)public static Stream<Integer> ofRangeClosed(int from, int to)
Stream<Integer> from closed range
(from from inclusive to to inclusive and incremental step 1).from - the initial value (inclusive)to - the upper bound (inclusive)public static Stream<Long> ofRangeClosed(long from, long to)
Stream<Long> from closed range
(from from inclusive to to inclusive and incremental step 1).from - the initial value (inclusive)to - the upper bound (inclusive)public static <T> Stream<T> generate(Supplier<T> supplier)
Stream by elements that generated by Supplier.T - the type of the stream elementssupplier - the Supplier of generated elementspublic static <T> Stream<T> iterate(T seed, UnaryOperator<T> op)
Stream by applying UnaryOperator operation to an initial element seed.T - the type of the stream elementsseed - the initial valueop - operator to produce new element by previous onepublic static <T> Stream<T> concat(Stream<? extends T> stream1, Stream<? extends T> stream2)
T - The type of stream elementsstream1 - the first streamstream2 - the second streampublic Iterator<? extends T> getIterator()
public <R> R custom(Function<Stream<T>,R> function)
Stream for intermediate operations,
or any value for terminal operation.
Operator examples:
// Intermediate operator
public static class Reverse<T> implements Function<Stream<T>, Stream<T>> {
@Override
public Stream<T> apply(Stream<T> stream) {
final Iterator<? extends T> iterator = stream.getIterator();
final ArrayDeque<T> deque = new ArrayDeque<T>();
while (iterator.hasNext()) {
deque.addFirst(iterator.next());
}
return Stream.of(deque.iterator());
}
}
// Intermediate operator based on existing stream operators
public static class SkipAndLimit<T> implements UnaryOperator<Stream<T>> {
private final int skip, limit;
public SkipAndLimit(int skip, int limit) {
this.skip = skip;
this.limit = limit;
}
@Override
public Stream<T> apply(Stream<T> stream) {
return stream.skip(skip).limit(limit);
}
}
// Terminal operator
public static class Sum implements Function<Stream<Integer>, Integer> {
@Override
public Integer apply(Stream<Integer> stream) {
return stream.reduce(0, new BinaryOperator<Integer>() {
@Override
public Integer apply(Integer value1, Integer value2) {
return value1 + value2;
}
});
}
}
R - the type resultfunction - a transforming functionpublic Stream<T> filter(Predicate<? super T> predicate)
Stream with elements that satisfy the given predicate.
This is an intermediate operation.
predicate - the predicate used to filter elementspublic <R> Stream<R> map(Function<? super T,? extends R> mapper)
Stream with elements that obtained by applying the given function.
This is an intermediate operation.
R - the type of elements in resulting streammapper - the mapper function used to apply to each elementpublic <R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>> mapper)
Stream by concatenating elements that obtained by applying the given function.
This is an intermediate operation.
R - the type of elements in resulting streammapper - the mapper function used to apply to each elementpublic Stream<T> distinct()
Stream with distinct elements (as determinated by equals method).
This is a stateful intermediate operation.
public Stream<T> sorted()
Stream with sorted elements (as determinated by Comparable interface).
This is a stateful intermediate operation.
If the elements of this stream are not Comparable,
a java.lang.ClassCastException may be thrown when the terminal operation is executed.
public Stream<T> sorted(Comparator<? super T> comparator)
Stream with sorted elements (as determinated by provided Comparator).
This is a stateful intermediate operation.
comparator - the Comparator to compare elementspublic <R extends Comparable> Stream<T> sortBy(Function<? super T,? extends R> f)
Stream with sorted elements (as determinated by Comparable interface).
Each element transformed by given function f before comparing.
This is a stateful intermediate operation.
R - the type of the result of transforming functionf - the transformation functionpublic <K> Stream<Map.Entry<K,List<T>>> groupBy(Function<? super T,? extends K> classifier)
Stream into Map entries according to the given classifier function.
This is a stateful intermediate operation.
K - the type of the keys, which are result of the classifier functionclassifier - the classifier functionpublic Stream<T> peek(Consumer<? super T> action)
This is an intermediate operation.
action - the action to be performed on each elementpublic Stream<T> limit(long maxSize)
Stream with first maxSize elements.
This is a short-circuiting stateful intermediate operation.
maxSize - the number of elements to limitpublic Stream<T> skip(long n)
n elements and returns Stream with remaining elements.
This is a stateful intermediate operation.
n - the number of elements to skippublic void forEach(Consumer<? super T> action)
This is a terminal operation.
action - the action to be performed on each elementpublic T reduce(T identity, BiFunction<T,T,T> accumulator)
This is a terminal operation.
identity - the initial valueaccumulator - the accumulation functionpublic Optional<T> reduce(BiFunction<T,T,T> accumulator)
This is a terminal operation.
accumulator - the accumulation functionpublic <R> R collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator)
supplier provided container by applying the given accumulation function.
This is a terminal operation.
R - the type of resultsupplier - the supplier function that provides containeraccumulator - the accumulation functioncollect(com.annimon.stream.Collector)public <R,A> R collect(Collector<? super T,A,R> collector)
collector that encapsulates supplier, accumulator and combiner functions.
This is a terminal operation.
R - the type of resultA - the intermediate used by Collectorcollector - the Collectorcollect(com.annimon.stream.function.Supplier, com.annimon.stream.function.BiConsumer)public Optional<T> min(Comparator<? super T> comparator)
This is a terminal operation.
comparator - the Comparator to compare elementspublic Optional<T> max(Comparator<? super T> comparator)
This is a terminal operation.
comparator - the Comparator to compare elementspublic long count()
This is a terminal operation.
public boolean anyMatch(Predicate<? super T> predicate)
This is a short-circuiting terminal operation.
predicate - the predicate used to match elementstrue if any elements match the given predicate, otherwise falsepublic boolean allMatch(Predicate<? super T> predicate)
This is a short-circuiting terminal operation.
predicate - the predicate used to match elementstrue if all elements match the given predicate, otherwise falsepublic boolean noneMatch(Predicate<? super T> predicate)
This is a short-circuiting terminal operation.
predicate - the predicate used to match elementstrue if no elements match the given predicate, otherwise falseCopyright © 2015. All rights reserved.