Verwendung der Java 8-Merge-Funktion für n Anzahl von Hashmaps

8

Ich muss n hashmaps idealerweise in einer Schleife verschmelzen, wie unten mit java 8 merge oder etwas gezeigt:

Karte 1: {Name:XXX,Phn:123,Work:""}

Karte 2: {Name:XXX,Phn:456,Work: xyz}

Karte 3: {Name:XXX,Phn:789,Work:""}

Ich möchte eine Ausgabe wie folgt erhalten:

%Vor%

Wenn ich versuche, putall wie dieses zu verwenden

%Vor%

Wenn der Wert des doppelten Schlüssels "" ist, wird der vorherige Wert durch den neuen ersetzt. Ich muss die Werte verketten, anstatt sie zu ersetzen.

    
nelz 26.03.2016, 20:43
quelle

1 Antwort

9

Wenn Sie eine List<Map<String, String>> haben, die eine Liste der zu mischenden Karten darstellt, können Sie

verwenden %Vor%

Diese Ebene bildet jede Karte in einen Stream ihrer Einträge ab. Dann wird der Stream nach dem Wert jedes Eintrags gruppiert und alle unterschiedlichen Elemente mit demselben Schlüssel werden ihrem Wert zugeordnet, verbunden.

Der eindeutige Teil wird ermöglicht, indem zuerst alle Werte innerhalb von Set gesammelt werden.

Beispielcode:

%Vor%     
Tunaki 26.03.2016 21:20
quelle

Tags und Links