Java 8 Corriente: normal y el recuento a la vez

nicmon:

Tengo una DoubleStreamque se ha calculado a partir de una función de tiempo muy lento, y quiero calcular el promedio y el conde de sus elementos al mismo tiempo.

El problema es que no quiero para calcular el DoubleStreamdoble debido al tiempo que consume mencionado cálculo de los valores. Quiero obtener el valor de ambos media y el conde de una expresión lambda.

He intentado todo con collecty mapy así sucesivamente, pero no tuvo éxito.

    final long count = products.stream()
            .mapToDouble(this::timeConsumingCalculateRating)
            .filter(rating -> rating > 0.0D)
            .count();

    final double averageRating = products.stream()
            .mapToDouble(this::timeConsumingCalculateRating)
            .filter(rating -> rating > 0.0D)
            .average()
            .orElse(0.0D);

Cualquier ayuda es muy apreciada.

Eran :

utilizar summaryStatistics():

DoubleSummaryStatistics stats = products.stream()
            .mapToDouble(this::timeConsumingCalculateRating)
            .filter(rating -> rating > 0.0D)
            .summaryStatistics();
long count = stats.getCount();
double averageRating = stats.getAverage();

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=231332&siteId=1
Recomendado
Clasificación