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.