Collectors (original) (raw)
Modifier and Type
Method and Description
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.lang.Long>
**[counting](../../../java/util/stream/Collectors.html#counting%28%29)**()
Returns a Collector<T, Long>
that counts the number of input elements.
static <T> java.util.function.BinaryOperator<T>
**[firstWinsMerger](../../../java/util/stream/Collectors.html#firstWinsMerger%28%29)**()
Returns a merge function, suitable for use inMap.merge()
or[toMap()](../../../java/util/stream/Collectors.html#toMap%28java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator%29), which implements a "first wins" policy.
static <T,K> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.Map<K,java.util.List<T>>>
**[groupingBy](../../../java/util/stream/Collectors.html#groupingBy%28java.util.function.Function%29)**(java.util.function.Function<? super T,? extends K> classifier)
Returns a Collector
implementing a "group by" operation on input elements of type T
, grouping elements according to a classification function.
static <T,K,D> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.Map<K,D>>
**[groupingBy](../../../java/util/stream/Collectors.html#groupingBy%28java.util.function.Function, java.util.stream.Collector%29)**(java.util.function.Function<? super T,? extends K> classifier,[Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,D> downstream)
Returns a Collector
implementing a cascaded "group by" operation on input elements of type T
, grouping elements according to a classification function, and then performing a reduction operation on the values associated with a given key using the specified downstreamCollector
.
static <T,K,D,M extends java.util.Map<K,D>> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,M>
**[groupingBy](../../../java/util/stream/Collectors.html#groupingBy%28java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector%29)**(java.util.function.Function<? super T,? extends K> classifier, java.util.function.Supplier<M> mapFactory,[Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,D> downstream)
Returns a Collector
implementing a cascaded "group by" operation on input elements of type T
, grouping elements according to a classification function, and then performing a reduction operation on the values associated with a given key using the specified downstreamCollector
.
static <T,K> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.concurrent.ConcurrentMap<K,java.util.List<T>>>
**[groupingByConcurrent](../../../java/util/stream/Collectors.html#groupingByConcurrent%28java.util.function.Function%29)**(java.util.function.Function<? super T,? extends K> classifier)
Returns a Collector
implementing a concurrent "group by" operation on input elements of type T
, grouping elements according to a classification function.
static <T,K,D> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.concurrent.ConcurrentMap<K,D>>
**[groupingByConcurrent](../../../java/util/stream/Collectors.html#groupingByConcurrent%28java.util.function.Function, java.util.stream.Collector%29)**(java.util.function.Function<? super T,? extends K> classifier,[Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,D> downstream)
Returns a Collector
implementing a concurrent cascaded "group by" operation on input elements of type T
, grouping elements according to a classification function, and then performing a reduction operation on the values associated with a given key using the specified downstream Collector
.
static <T,K,D,M extends java.util.concurrent.ConcurrentMap<K,D>> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,M>
**[groupingByConcurrent](../../../java/util/stream/Collectors.html#groupingByConcurrent%28java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector%29)**(java.util.function.Function<? super T,? extends K> classifier, java.util.function.Supplier<M> mapFactory,[Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,D> downstream)
Returns a concurrent Collector
implementing a cascaded "group by" operation on input elements of type T
, grouping elements according to a classification function, and then performing a reduction operation on the values associated with a given key using the specified downstream Collector
.
static <T> java.util.function.BinaryOperator<T>
**[lastWinsMerger](../../../java/util/stream/Collectors.html#lastWinsMerger%28%29)**()
Returns a merge function, suitable for use inMap.merge()
or[toMap()](../../../java/util/stream/Collectors.html#toMap%28java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator%29), which implements a "last wins" policy.
static <T,U,R> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,R>
**[mapping](../../../java/util/stream/Collectors.html#mapping%28java.util.function.Function, java.util.stream.Collector%29)**(java.util.function.Function<? super T,? extends U> mapper,[Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<U,R> downstream)
Adapts a Collector<U,R>
to a Collector<T,R>
by applying a mapping function to each input element before accumulation.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,T>
**[maxBy](../../../java/util/stream/Collectors.html#maxBy%28java.util.Comparator%29)**(java.util.Comparator<? super T> comparator)
Returns a Collector<T, T>
that produces the maximal element according to a given Comparator
.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,T>
**[minBy](../../../java/util/stream/Collectors.html#minBy%28java.util.Comparator%29)**(java.util.Comparator<? super T> comparator)
Returns a Collector<T, T>
that produces the minimal element according to a given Comparator
.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.Map<java.lang.Boolean,java.util.List<T>>>
**[partitioningBy](../../../java/util/stream/Collectors.html#partitioningBy%28java.util.function.Predicate%29)**(java.util.function.Predicate<? super T> predicate)
Returns a Collector
which partitions the input elements according to a Predicate
, and organizes them into aMap<Boolean, List<T>>
.
static <T,D> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.Map<java.lang.Boolean,D>>
**[partitioningBy](../../../java/util/stream/Collectors.html#partitioningBy%28java.util.function.Predicate, java.util.stream.Collector%29)**(java.util.function.Predicate<? super T> predicate,[Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,D> downstream)
Returns a Collector
which partitions the input elements according to a Predicate
, reduces the values in each partition according to another Collector
, and organizes them into aMap<Boolean, D>
whose values are the result of the downstream reduction.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,T>
**[reducing](../../../java/util/stream/Collectors.html#reducing%28java.util.function.BinaryOperator%29)**(java.util.function.BinaryOperator<T> op)
Returns a Collector<T,T>
which performs a reduction of its input elements under a specified BinaryOperator
.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,T>
**[reducing](../../../java/util/stream/Collectors.html#reducing%28T, java.util.function.BinaryOperator%29)**(T identity, java.util.function.BinaryOperator<T> op)
Returns a Collector<T,T>
which performs a reduction of its input elements under a specified BinaryOperator
.
static <T,U> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,U>
**[reducing](../../../java/util/stream/Collectors.html#reducing%28U, java.util.function.Function, java.util.function.BinaryOperator%29)**(U identity, java.util.function.Function<? super T,? extends U> mapper, java.util.function.BinaryOperator<U> op)
Returns a Collector<T,U>
which performs a reduction of its input elements under a specified mapping function andBinaryOperator
.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.lang.Long>
**[sumBy](../../../java/util/stream/Collectors.html#sumBy%28java.util.function.Function%29)**(java.util.function.Function<? super T,java.lang.Long> mapper)
Returns a Collector<T, Long>
that produces the sum of a long-valued function applied to the input element.
static <T> java.util.function.BinaryOperator<T>
**[throwingMerger](../../../java/util/stream/Collectors.html#throwingMerger%28%29)**()
Returns a merge function, suitable for use inMap.merge()
or[toMap()](../../../java/util/stream/Collectors.html#toMap%28java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator%29), which always throws IllegalStateException
.
static <T,C extends java.util.Collection<T>> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,C>
**[toCollection](../../../java/util/stream/Collectors.html#toCollection%28java.util.function.Supplier%29)**(java.util.function.Supplier<C> collectionFactory)
Returns a Collector
that accumulates the input elements into a new Collection
, in encounter order.
static <T,K,U> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.concurrent.ConcurrentMap<K,U>>
**[toConcurrentMap](../../../java/util/stream/Collectors.html#toConcurrentMap%28java.util.function.Function, java.util.function.Function%29)**(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper)
Accumulate elements into a ConcurrentMap
whose keys and values are the result of applying mapping functions to the input elements.
static <T,K,U> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.concurrent.ConcurrentMap<K,U>>
**[toConcurrentMap](../../../java/util/stream/Collectors.html#toConcurrentMap%28java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator%29)**(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper, java.util.function.BinaryOperator<U> mergeFunction)
Accumulate elements into a ConcurrentMap
whose keys and values are the result of applying mapping functions to the input elements.
static <T,K,U,M extends java.util.concurrent.ConcurrentMap<K,U>> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,M>
**[toConcurrentMap](../../../java/util/stream/Collectors.html#toConcurrentMap%28java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier%29)**(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper, java.util.function.BinaryOperator<U> mergeFunction, java.util.function.Supplier<M> mapSupplier)
Accumulate elements into a ConcurrentMap
whose keys and values are the result of applying mapping functions to the input elements.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.DoubleSummaryStatistics>
**[toDoubleSummaryStatistics](../../../java/util/stream/Collectors.html#toDoubleSummaryStatistics%28java.util.function.ToDoubleFunction%29)**(java.util.function.ToDoubleFunction<? super T> mapper)
Returns a Collector
which applies an double
-producing mapping function to each input element, and returns summary statistics for the resulting values.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.IntSummaryStatistics>
**[toIntSummaryStatistics](../../../java/util/stream/Collectors.html#toIntSummaryStatistics%28java.util.function.ToIntFunction%29)**(java.util.function.ToIntFunction<? super T> mapper)
Returns a Collector
which applies an int
-producing mapping function to each input element, and returns summary statistics for the resulting values.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.List<T>>
**[toList](../../../java/util/stream/Collectors.html#toList%28%29)**()
Returns a Collector
that accumulates the input elements into a new List
.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.LongSummaryStatistics>
**[toLongSummaryStatistics](../../../java/util/stream/Collectors.html#toLongSummaryStatistics%28java.util.function.ToLongFunction%29)**(java.util.function.ToLongFunction<? super T> mapper)
Returns a Collector
which applies an long
-producing mapping function to each input element, and returns summary statistics for the resulting values.
static <T,K,U> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.Map<K,U>>
**[toMap](../../../java/util/stream/Collectors.html#toMap%28java.util.function.Function, java.util.function.Function%29)**(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper)
Accumulate elements into a Map
whose keys and values are the result of applying mapping functions to the input elements.
static <T,K,U> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.Map<K,U>>
**[toMap](../../../java/util/stream/Collectors.html#toMap%28java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator%29)**(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper, java.util.function.BinaryOperator<U> mergeFunction)
Accumulate elements into a Map
whose keys and values are the result of applying mapping functions to the input elements.
static <T,K,U,M extends java.util.Map<K,U>> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,M>
**[toMap](../../../java/util/stream/Collectors.html#toMap%28java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier%29)**(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper, java.util.function.BinaryOperator<U> mergeFunction, java.util.function.Supplier<M> mapSupplier)
Accumulate elements into a Map
whose keys and values are the result of applying mapping functions to the input elements.
static <T> [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<T,java.util.Set<T>>
**[toSet](../../../java/util/stream/Collectors.html#toSet%28%29)**()
Returns a Collector
that accumulates the input elements into a new Set
.
static [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<java.lang.String,java.lang.StringBuilder>
**[toStringBuilder](../../../java/util/stream/Collectors.html#toStringBuilder%28%29)**()
Returns a Collector
that concatenates the input elements into a new StringBuilder
.
static [Collector](../../../java/util/stream/Collector.html "interface in java.util.stream")<java.lang.CharSequence,java.util.StringJoiner>
**[toStringJoiner](../../../java/util/stream/Collectors.html#toStringJoiner%28java.lang.String%29)**(java.lang.String separator)
Returns a Collector
that concatenates the input elements into a new StringJoiner
, using the specified separator.