Desidero chiarire in anticipo Sto cercando un modo per calcolare la deviazione standard utilizzando gli stream (attualmente ho un metodo di lavoro che calcola lo & restituisce SD ma senza utilizzare gli stream).Java Stream - Deviazione standard
Il set di dati sto lavorando con le corrispondenze da vicino come visto in Link. Come mostrato in questo link sono in grado di raggruppare i miei dati & ottenere la media, ma non in grado di capire come ottenere la SD.
Codice
outPut.stream()
.collect(Collectors.groupingBy(e -> e.getCar(),
Collectors.averagingDouble(e -> (e.getHigh() - e.getLow()))))
.forEach((car,avgHLDifference) -> System.out.println(car+ "\t" + avgHLDifference));
Ho anche controllato Link su DoubleSummaryStatistics ma non sembra aiutare per SD.
grazie mille. Sono in grado di ottenere la SD. Ora sto controllando per vedere se riesco a raccogliere sia media Double e SD (come - car, averageHL, SD) nella stessa chiamata stream() invece di 2 flussi. – iCoder
@iCoder Il 'DoubleStatistics' in questa risposta raccoglie SD e il sì medio. Potresti avere un 'Map' con tutte le informazioni. –
Tunaki
Il fatto interessante riguardante l'overflow: a nessuno importa che "LongSummaryStatistics' superi effettivamente la somma, quindi' LongStream.of (Long.MAX_VALUE, Long.MAX_VALUE) .summaryStatistics(). GetAverage() 'è' -1.0'. Le probabilità di colpire questo overflow, secondo me sono più alte delle possibilità di colpire l'overflow della somma dei quadrati ... –