CollectionDouble to DoubleStream [duplizieren]

10

Ich bin auf der Suche nach der elegantesten Art, DoubleStream (für die Verwendung von Summe, Durchschnitt usw.) von List<Double> zu erstellen. Im Moment habe ich einen solchen Code:

%Vor%

Vielleicht könnte jemand einen kürzeren Weg vorschlagen?

    
Anatrollik 14.09.2015, 12:57
quelle

2 Antworten

11

Der beste Weg, Statistiken von Stream zu erhalten, ist die Verwendung der Klassen ...SummaryStatistics . Für Stream<Double> ist dies DoubleSummaryStatistics :

%Vor%

Es wird durch Sammeln des Streams mit der summarizingDouble Kollektor. Dieser Kollektor benötigt ein ToDoubleFunction als Argument: Es ist eine Funktion, die das double zur Analyse zurückgeben soll.

Solche Statistiken können für Integer , Long und Double Werte.

Beachten Sie, dass der allgemeine Fall, in dem ein Collection<Double> in ein DoubleStream konvertiert wird, mit dem Code gemacht werden kann, den Sie bereits haben:

%Vor%     
Tunaki 14.09.2015, 13:01
quelle
1

Sie können (auch wenn es nicht wesentlich kürzer ist, aber ...):

%Vor%

oder

%Vor%

aber das letztere ist mehr oder weniger dasselbe wie Ihr Ansatz.

    
Konstantin Yovkov 14.09.2015 12:59
quelle