programming language/java
Stream (java)
rolroralra
2022. 9. 18. 01:10
Intermediate Operation (중간 연산)
Operation | Stateless | Style | Return Type | Parameter | Function Descriptor | Description |
---|---|---|---|---|---|---|
filter | Filtering | Stream | Predicate | T -> boolean | ||
distinct | stateful, unbound | Filtering | Stream | |||
sorted | stateful, unbound | Sorting | Stream | Comparator | (T, T) -> int | |
takeWhile | Slicing | Stream | Predicate | T -> boolean | limit | |
dropWhile | Slicing | Stream | Predicate | T -> boolean | skip | |
limit | stateful, bound | Slicing | Stream | long | short circuit | |
skip | stateful, bound | Slicing | Stream | long | ||
map | Mapping | Stream | Function<T, R> | T -> R | ||
flatMap | Mapping | Stream | Function<T, Stream<R>> | T -> Stream<R> |
Terminal Operation (최종 연산)
Operation | Stateless | Style | Return Type | Parameter | Function Descriptor | Description |
---|---|---|---|---|---|---|
anyMatch | Matching | boolean | Predicate | T -> boolean | short circuit | |
allMatch | Matching | boolean | Predicate | T -> boolean | short circuit | |
noneMatch | Matching | boolean | Predicate | T -> boolean | short circuit | |
findAny | Finding | Optional | ||||
findFirst | Finding | Optional | ||||
forEach | Iteration | void | Consumer | T -> void | ||
collect | Reduce | R | Collector<T, A, R> | Supplier supplier BiConsumer<A, T> accumulator BinaryOperator combiner Function<A, R> finisher | ||
reduce | stateful, bound | Reduce | Optional | BinaryOperator | (T, T) -> T | |
count | Reduce | long |
Filtering
Operation | Operation Type | Style | Return Type | Parameter | Function Descriptor | Description |
---|---|---|---|---|---|---|
filter | intermediate | Filtering | Stream | Predicate | T -> boolean | |
distinct | intermediate | Filtering | Stream |
Slicing
Operation | Operation Type | Style | Return Type | Parameter | Function Descriptor | Description |
---|---|---|---|---|---|---|
takeWhile | intermediate | Slicing | Stream | Predicate | T -> boolean | limit |
dropWhile | intermediate | Slicing | Stream | Predicate | T -> boolean | skip |
limit | intermediate | Slicing | Stream | long | short circuit | |
skip | intermediate | Slicing | Stream | long |
Mapping
Operation | Operation Type | Style | Return Type | Parameter | Function Descriptor | Description |
---|---|---|---|---|---|---|
map | intermediate | Mapping | Stream | Function<T, R> | T -> R | |
flatMap | intermediate | Mapping | Stream | Function<T, R> | T -> Stream |
Matching
Operation | Operation Type | Style | Return Type | Parameter | Function Descriptor | Description |
---|---|---|---|---|---|---|
anyMatch | terminal | Matching | boolean | Predicate<T> | T -> boolean | short circuit |
allMatch | terminal | Matching | boolean | Predicate<T> | T -> boolean | short circuit |
noneMatch | terminal | Matching | boolean | Predicate<T> | T -> boolean | short circuit |
Finding
Operation | Operation Type | Style | Return Type | Parameter | Function Descriptor | Description |
---|---|---|---|---|---|---|
findAny | terminal | Finding | Optional<T> | Short Circuit | ||
findFirst | terminal | Finding | Optional<T> | Short Circuit |
Reduce (Fold)
Operation | Operation Type | Style | Return Type | Parameter | Function Descriptor | Description |
---|---|---|---|---|---|---|
forEach | terminal | Iteration | void | Consumer<T> | T -> void | |
collect | terminal | Reduce | R | Collector<T, A, R> | Supplier<A> supplier BiConsumer<A, T> accumulator BinaryOperator<A> combiner Function<A, R> finisher |
|
reduce | termianl | Reduce | Optional<T> | BinaryOperator<T> | (T, T) -> T | |
count | terminal | Reduce | long |
Collector
interface Collector<T, A, R> {
Supplier<A> supplier();
BiConsumer<A, T> accumulator();
BinaryOperator<A> combiner();
Function<A, R> finisher();
Set<Characteristics> characteristics();
}
Static Method | Collector Type (Return Type) | Collect Type (Reduce Type) | Parameter Types |
---|---|---|---|
toList | Collector<T, ?, List<T>> | List<T> | |
toSet | Collector<T, ?, Set<T>> | Set<T> | |
toCollection | Collector<T, ?, C> | C extends Collection<T> | Supplier<C> |
joining | Collector<CharSequence, ?, String> | String | CharSequence delimiter (optional) CharSequence prefix (optional) CharSequence suffix (optional) |
counting | Collector<T, ?, Long> | Long | |
summingInt summingLong summingDouble |
Collector<T, ?, Integer> Collector<T, ?, Long> Collector<T, ?, Double> |
Integer Long Double |
ToIntFunction<? super T> ToLongFunction<? super T> ToDoubleFunction<? super T> |
averagingInt averagingLong averagingDouble |
Collector<T, ?, Double> Collector<T, ?, Double> Collector<T, ?, Double> |
Double Double Double |
ToIntFunction<? super T> ToLongFunction<? super T> ToDoubleFunction<? super T> |
summarizingInt summarizingLong summarizingDouble |
Collector<T, ?, IntSummaryStatistics> Collector<T, ?, LongSummaryStatistics> Collector<T, ?, DoubleSummaryStatistics> |
IntSummaryStatistics LongSummaryStatistics DoubleSummaryStatistics |
ToIntFunction<? super T> ToLongFunction<? super T> ToDoubleFunction<? super T> |
maxBy | Collector<T, ?, Optional<T>> | Optional<T> | Comparator<? super T> |
minBy | Collector<T, ?, Optional<T>> | Optional<T> | Comparator<? super T> |
mapping | Collector<T, ?, R> | R | Function<? super T, ? extends U> mapper Collector<? super U, A, R> downstream |
flatMapping | Collector<T, ?, R> | R | Function<? super T, ? extends Stream<? extends U>> mapper Collector<? super U, A, R> downstream |
filtering | Collector<T, ?, R> | R | Predicate<? super T> predicate Collector<? super T, A, R> downstream |
reducing | Collector<T, ?, T> Collector<T, ?, Optional<T>> Collector<T, ?, U> |
T Optional<T> U |
T identity, BinaryOperator<T> op BinaryOperator<T> op U identity, Function<? super T, ? extends U> mapper, BinaryOperator<U> op |
collectingAndThen | Collector<T, A, RR> | RR | Collector<T, A, R> downstream, Function<R, RR> finisher |
groupingBy | Collector<T, ?, Map<K, List<T>>> Collector<T, ?, Map<K, D>> Collector<T, ?, M> |
Map<K, List<T>> Map<K, D> M extends Map<K, D> |
Function<? super T, ? extends K> classfier Function<? super T, ? extends K> classfier, Collector<? super T, A, D> downstream Function<? super T, ? extends k> classfier, Supplier<M> mapFactory, Collector<? super T, A, D> |
partitioningBy | Collector<T, ?, Map<Boolean, List<T>>> Collector<T, ?, Map<Boolean, D> |
Map<Boolean, List<T>> Map<Boolean, D> |
Predicate<? super T> predicate Predicate<? super T> predicate, Collector<? super T, A, D> downstream |
teeing | Collector<T, ?, R> | R | Collector<? super T, ?, R1> downstream1, Collector<? super T, ?, R2> downstream2, BiFunction<? super R1, ? super R2, R> merger |
Parallel Stream
https://n1tjrgns.tistory.com/292
Comparator
public interface Comparator<T> {
int compare(T o1, T o2);
}
Static Method | Parameter Types | Return Type |
---|---|---|
comparing | Function<? super T, ? extends U> keyExtractor, Comparator<? super U> keyComparator (optional) |
Comparator<T> |
comparingInt comparingLong comparingDouble |
ToIntFunction<? super T> keyExtractor ToLongFunction<? super T> keyExtractor ToDoubleFunction<? super T> keyExtractor |
Comparator<T> |
naturalOrder | Comparator<T> | |
reverseOrder | Comparator<T> | |
nullsFirst | Comparator<? super T> comparator | Comparator<T> |
nullsLast | Comparator<? super T> comparator | Comparator<T> |