Wie summiere ich die doppelten Werte eines Map-Streams in Streamex?

8

Die StreamEx-Bibliothek scheint mir wirklich dabei zu helfen, Java 8-Streams präzise zu schreiben, besonders wenn man Maps betrachtet (zB mapKeyValue , anstatt die Map-Einträge manuell zu entpacken).

Wenn ich einen Stream von Einträgen in einer Map habe, kann ich in Vanille Java 8 die Werte auf diese Weise summieren:

%Vor%

Ich kann dies auch in StreamEx tun, aber ich habe erwartet, dass es in StreamEx einen besseren Weg dafür gibt, aber das Beste, was ich mir vorstellen kann, ist:

%Vor%

was nicht besser ist.

Gibt es einen besseren Weg, den ich vermisse?

    
Graeme Moss 22.02.2016, 15:58
quelle

1 Antwort

7

Da Sie nur an den Werten von Map interessiert sind, können Sie einfach Folgendes haben:

%Vor%

unter Verwendung der Stream-API selbst Dies erzeugt ein Stream<Double> direkt aus den Werten der Map, bildet dieses auf das Grundelement DoubleStream ab und gibt die Summe zurück.

Mit Stream können Sie das vereinfachen:

%Vor%

mit DoubleStreamEx.of nehmen Sie direkt ein Collection<Double> .

Wenn Sie bereits eine EntryStream haben, werden Sie dies nicht tun etwas einfacher haben als:

%Vor%     
Tunaki 22.02.2016, 16:01
quelle

Tags und Links