Interface DoubleCollector<A,R>

Type Parameters:
A - the mutable accumulation type of the reduction operation (often hidden as an implementation detail)
R - the result type of the reduction operation
All Superinterfaces:
Collector<Double,A,R>, MergingCollector<Double,A,R>
All Known Implementing Classes:
Internals.DoubleCollectorImpl

public interface DoubleCollector<A,R> extends MergingCollector<Double,A,R>
A Collector specialized to work with primitive double.
Since:
0.3.0
See Also:
  • Method Details

    • doubleAccumulator

      ObjDoubleConsumer<A> doubleAccumulator()
      A function that folds a value into a mutable result container.
      Returns:
      a function which folds a value into a mutable result container
    • accumulator

      default BiConsumer<A,Double> accumulator()
      A function that folds a value into a mutable result container.

      The default implementation calls doubleAccumulator() on unboxed value.

      Specified by:
      accumulator in interface Collector<Double,A,R>
      Returns:
      a function which folds a value into a mutable result container
    • andThen

      default <RR> DoubleCollector<A,RR> andThen(Function<R,RR> finisher)
      Adapts this collector to perform an additional finishing transformation.
      Type Parameters:
      RR - result type of the resulting collector
      Parameters:
      finisher - a function to be applied to the final result of this collector
      Returns:
      a collector which performs the action of this collector, followed by an additional finishing step
      Since:
      0.3.7
    • of

      static <R> DoubleCollector<R,R> of(Supplier<R> supplier, ObjDoubleConsumer<R> doubleAccumulator, BiConsumer<R,R> merger)
      Returns a new DoubleCollector described by the given supplier, accumulator, and merger functions. The resulting DoubleCollector has the Collector.Characteristics.IDENTITY_FINISH characteristic.
      Type Parameters:
      R - The type of intermediate accumulation result, and final result, for the new collector
      Parameters:
      supplier - The supplier function for the new collector
      doubleAccumulator - The doubleAccumulator function for the new collector
      merger - The merger function for the new collector
      Returns:
      the new DoubleCollector
    • of

      static <A, R> DoubleCollector<?,R> of(Collector<Double,A,R> collector)
      Adapts a Collector which accepts elements of type Double to a DoubleCollector.
      Type Parameters:
      A - The intermediate accumulation type of the collector
      R - The final result type of the collector
      Parameters:
      collector - a Collector to adapt
      Returns:
      a DoubleCollector which behaves in the same way as input collector.
    • of

      static <A, R> DoubleCollector<A,R> of(Supplier<A> supplier, ObjDoubleConsumer<A> doubleAccumulator, BiConsumer<A,A> merger, Function<A,R> finisher)
      Returns a new DoubleCollector described by the given supplier, accumulator, merger, and finisher functions.
      Type Parameters:
      A - The intermediate accumulation type of the new collector
      R - The final result type of the new collector
      Parameters:
      supplier - The supplier function for the new collector
      doubleAccumulator - The doubleAccumulator function for the new collector
      merger - The merger function for the new collector
      finisher - The finisher function for the new collector
      Returns:
      the new DoubleCollector
    • joining

      static DoubleCollector<?,String> joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
      Returns a DoubleCollector that converts the input numbers to strings and concatenates them, separated by the specified delimiter, with the specified prefix and suffix, in encounter order.
      Parameters:
      delimiter - the delimiter to be used between each element
      prefix - the sequence of characters to be used at the beginning of the joined result
      suffix - the sequence of characters to be used at the end of the joined result
      Returns:
      A DoubleCollector which concatenates the input numbers, separated by the specified delimiter, in encounter order
    • joining

      static DoubleCollector<?,String> joining(CharSequence delimiter)
      Returns a DoubleCollector that converts the input numbers to strings and concatenates them, separated by the specified delimiter, in encounter order.
      Parameters:
      delimiter - the delimiter to be used between each element
      Returns:
      A DoubleCollector which concatenates the input numbers, separated by the specified delimiter, in encounter order
    • counting

      static DoubleCollector<?,Long> counting()
      Returns a DoubleCollector that counts the number of input elements and returns the result as Long. If no elements are present, the result is 0.
      Returns:
      a DoubleCollector that counts the input elements
    • countingInt

      static DoubleCollector<?,Integer> countingInt()
      Returns an DoubleCollector that counts the number of input elements and returns the result as Integer. If no elements are present, the result is 0.
      Returns:
      an DoubleCollector that counts the input elements
    • summing

      static DoubleCollector<?,Double> summing()
      Returns a DoubleCollector that produces the sum of the input elements. If no elements are present, the result is 0.0.
      Returns:
      a DoubleCollector that produces the sum of the input elements
    • averaging

      static DoubleCollector<?,OptionalDouble> averaging()
      Returns a DoubleCollector that produces the arithmetic mean of the input elements or an empty optional if no elements are collected.
      Returns:
      a DoubleCollector that produces the arithmetic mean of the input elements
      Since:
      0.3.7
    • min

      Returns a DoubleCollector that produces the minimal element, described as an OptionalDouble. If no elements are present, the result is an empty OptionalDouble.
      Returns:
      a DoubleCollector that produces the minimal element.
    • max

      Returns a DoubleCollector that produces the maximal element, described as an OptionalDouble. If no elements are present, the result is an empty OptionalDouble.
      Returns:
      a DoubleCollector that produces the maximal element.
    • mapping

      static <A, R> DoubleCollector<?,R> mapping(DoubleUnaryOperator mapper, DoubleCollector<A,R> downstream)
      Adapts a DoubleCollector to another one by applying a mapping function to each input element before accumulation.
      Type Parameters:
      A - intermediate accumulation type of the downstream collector
      R - result type of collector
      Parameters:
      mapper - a function to be applied to the input elements
      downstream - a collector which will accept mapped values
      Returns:
      a collector which applies the mapping function to the input elements and provides the mapped results to the downstream collector
    • mappingToObj

      static <U, A, R> DoubleCollector<?,R> mappingToObj(DoubleFunction<U> mapper, Collector<U,A,R> downstream)
      Adapts a Collector accepting elements of type U to a DoubleCollector by applying a mapping function to each input element before accumulation.
      Type Parameters:
      U - type of elements accepted by downstream collector
      A - intermediate accumulation type of the downstream collector
      R - result type of collector
      Parameters:
      mapper - a function to be applied to the input elements
      downstream - a collector which will accept mapped values
      Returns:
      a collector which applies the mapping function to the input elements and provides the mapped results to the downstream collector
    • reducing

      Returns a DoubleCollector which performs a reduction of its input numbers under a specified DoubleBinaryOperator. The result is described as an OptionalDouble.
      Parameters:
      op - a DoubleBinaryOperator used to reduce the input numbers
      Returns:
      a DoubleCollector which implements the reduction operation.
    • reducing

      static DoubleCollector<?,Double> reducing(double identity, DoubleBinaryOperator op)
      Returns a DoubleCollector which performs a reduction of its input numbers under a specified IntBinaryOperator using the provided identity.
      Parameters:
      identity - the identity value for the reduction (also, the value that is returned when there are no input elements)
      op - a DoubleBinaryOperator used to reduce the input numbers
      Returns:
      a DoubleCollector which implements the reduction operation
    • summarizing

      static DoubleCollector<?,DoubleSummaryStatistics> summarizing()
      Returns a DoubleCollector which returns summary statistics for the input elements.
      Returns:
      a DoubleCollector implementing the summary-statistics reduction
    • partitioningBy

      static DoubleCollector<?,Map<Boolean,double[]>> partitioningBy(DoublePredicate predicate)
      Returns a DoubleCollector which partitions the input elements according to a DoublePredicate, and organizes them into a Map<Boolean, double[]>.

      There are no guarantees on the type, mutability, serializability, or thread-safety of the Map returned.

      Parameters:
      predicate - a predicate used for classifying input elements
      Returns:
      a DoubleCollector implementing the partitioning operation
    • partitioningBy

      static <A, D> DoubleCollector<?,Map<Boolean,D>> partitioningBy(DoublePredicate predicate, DoubleCollector<A,D> downstream)
      Returns a DoubleCollector which partitions the input numbers according to a DoublePredicate, reduces the values in each partition according to another IntCollector, and organizes them into a Map<Boolean, D> whose values are the result of the downstream reduction.

      There are no guarantees on the type, mutability, serializability, or thread-safety of the Map returned.

      Type Parameters:
      A - the intermediate accumulation type of the downstream collector
      D - the result type of the downstream reduction
      Parameters:
      predicate - a predicate used for classifying input elements
      downstream - a DoubleCollector implementing the downstream reduction
      Returns:
      a DoubleCollector implementing the cascaded partitioning operation
    • groupingBy

      static <K> DoubleCollector<?,Map<K,double[]>> groupingBy(DoubleFunction<? extends K> classifier)
      Returns a DoubleCollector implementing a "group by" operation on input numbers, grouping them according to a classification function, and returning the results in a Map.

      The classification function maps elements to some key type K. The collector produces a Map<K, double[]> whose keys are the values resulting from applying the classification function to the input numbers, and whose corresponding values are arrays containing the input numbers which map to the associated key under the classification function.

      There are no guarantees on the type, mutability, serializability, or thread-safety of the Map objects returned.

      Type Parameters:
      K - the type of the keys
      Parameters:
      classifier - the classifier function mapping input elements to keys
      Returns:
      a DoubleCollector implementing the group-by operation
    • groupingBy

      static <K, D, A> DoubleCollector<?,Map<K,D>> groupingBy(DoubleFunction<? extends K> classifier, DoubleCollector<A,D> downstream)
      Returns a DoubleCollector implementing a cascaded "group by" operation on input numbers, grouping them according to a classification function, and then performing a reduction operation on the values associated with a given key using the specified downstream IntCollector.

      The classification function maps elements to some key type K. The downstream collector produces a result of type D. The resulting collector produces a Map<K, D>.

      There are no guarantees on the type, mutability, serializability, or thread-safety of the Map returned.

      Type Parameters:
      K - the type of the keys
      A - the intermediate accumulation type of the downstream collector
      D - the result type of the downstream reduction
      Parameters:
      classifier - a classifier function mapping input elements to keys
      downstream - a DoubleCollector implementing the downstream reduction
      Returns:
      a DoubleCollector implementing the cascaded group-by operation
    • groupingBy

      static <K, D, A, M extends Map<K, D>> DoubleCollector<?,M> groupingBy(DoubleFunction<? extends K> classifier, Supplier<M> mapFactory, DoubleCollector<A,D> downstream)
      Returns a DoubleCollector implementing a cascaded "group by" operation on input numbers, grouping them according to a classification function, and then performing a reduction operation on the values associated with a given key using the specified downstream IntCollector. The Map produced by the Collector is created with the supplied factory function.

      The classification function maps elements to some key type K. The downstream collector produces a result of type D. The resulting collector produces a Map<K, D>.

      Type Parameters:
      K - the type of the keys
      A - the intermediate accumulation type of the downstream collector
      D - the result type of the downstream reduction
      M - the type of the resulting Map
      Parameters:
      classifier - a classifier function mapping input elements to keys
      downstream - a DoubleCollector implementing the downstream reduction
      mapFactory - a function which, when called, produces a new empty Map of the desired type
      Returns:
      a DoubleCollector implementing the cascaded group-by operation
    • toArray

      static DoubleCollector<?,double[]> toArray()
      Returns a DoubleCollector that produces the array of the input elements. If no elements are present, the result is an empty array.
      Returns:
      a DoubleCollector that produces the array of the input elements
    • toFloatArray

      static DoubleCollector<?,float[]> toFloatArray()
      Returns a DoubleCollector that produces the float[] array of the input elements converting them via (float) casting. If no elements are present, the result is an empty array.
      Returns:
      a DoubleCollector that produces the float[] array of the input elements
    • toBooleanArray

      static DoubleCollector<?,boolean[]> toBooleanArray(DoublePredicate predicate)
      Returns a DoubleCollector which produces a boolean array containing the results of applying the given predicate to the input elements, in encounter order.
      Parameters:
      predicate - a non-interfering, stateless predicate to apply to each input element. The result values of this predicate are collected to the resulting boolean array.
      Returns:
      a DoubleCollector which collects the results of the predicate function to the boolean array, in encounter order.
      Since:
      0.3.8