Java 8 streams - merging eine Liste der Karten
Ich versuche, einen Strom von List<Map<String, Integer>>
verschmelzen alle Karten enthalten in einem. Dies ist das zusammenfassen mehrere Anfrage-beantwortungen in einem.
Betrachten Sie dieses dataset (mit JSON machen es leichter zu Lesen):
[
{"field1": 1, "field2": 5},
{"field2": 6, "field3": 10},
{"field1": 3, "field4": 15}
]
Will ich es führen die folgenden (die Reihenfolge nicht egal):
{"field1": 4, "field2": 11, "field3": 10, "field4": 15}
Möchte ich die Summe aller Tasten und kombinieren Sie in einer einzigen Karte. Gibt es einen schönen Weg, dies zu tun mit der Stream-Schnittstelle in Java 8?
Entdeckte ich Collectors.groupingBy(o -> o, Collectors.counting())
, also vielleicht bin ich auf dem richtigen Weg, ich muss nur herausfinden, wie tatsächlich zusammenzuführen, Sie im Voraus von dieser, ohne Schrauben auf die Ergebnisse.
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
counting()
wird einfach nur wieder die Zahl der Werte, die gruppiert werden, indem die Funktion, die Sie anwenden, für jeden Schlüssel. Wenn Sie summieren möchten Ihnen das nachgeschaltete collector, den Sie suchen, istsummingInt
(odersummingLong
wenn Sie überläuft):