1
resposta

Calcular variáveis estatísticas(mediana, 1 e 3 quartil, desvio padrão) usando stream, em paralelo.

Pessoal, no método abaixo, recebo um array de double. Este array normalmente é muito grande, na casa dos milhoes. Estava usando a api do google, código comentado, mas esta ficou inviável pois demora uma eternidade. Preciso de ajuda para calcular as outras variáveis usando stream. Abraços!

public static double[] getCalculoEstatisticos(double[]d) {
        double [] stats = new double[6];

        DoubleStream doubleStream = Arrays.stream(d).parallel().sorted();
        DoubleSummaryStatistics dstats = doubleStream.parallel().summaryStatistics();

        stats[0] = dstats.getAverage();
        stats[1]  = dstats.getMax();
        stats[2]  = dstats.getMin();

        /*double mediana   = Quantiles.median().compute(d);
        double quartil1  = Quantiles.percentiles().index(25).compute(d);
        double quartil3  = Quantiles.percentiles().index(75).compute(d);
        */

        return stats;
    }
1 resposta

Olá Celso!

Existe uma biblioteca da Apache que talvez te ajude:

http://commons.apache.org/proper/commons-math/

Aguardo seu retorno!