Iterate durch eine Karte von Maps mit Lambda in Java 8?

8

Ich bin neu in Java und Lambda, ich möchte die Summe und den Durchschnitt der Werte in einer Karte von Karten finden.

Mein Objekt ist wie Map<String, Map<String, Double>> browserData;

Daten haben das Format

%Vor%

Das Endergebnis muss zwei Karten sein, 1 für die Summe und ein weiteres für den Durchschnitt.

%Vor%

Das Ergebnis des obigen Beispiels wäre also

%Vor%

Wie kann ich das erreichen?

    
victor 16.09.2014, 08:58
quelle

1 Antwort

7

Die Idee besteht darin, jeden der Einträge der inneren Karten zu streamen und den entsprechenden Kollektor anzuwenden, um die benötigten Werte zu berechnen:

%Vor%

Wenn Sie die einzelnen Summen- und Durchschnittskarten benötigen, können Sie sie aus der Übersichtskarte erstellen:

%Vor%

Hinweis: Ich habe die folgenden statischen Importe verwendet:
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.summarizingDouble;
import static java.util.stream.Collectors.toMap;

    
assylias 16.09.2014, 09:26
quelle

Tags und Links