nicmon:
Tengo una DoubleStream
que 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 DoubleStream
doble 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 collect
y map
y 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();