So erreichen Sie den MapString, Listenstruktur [geschlossen]

9

Ich habe Daten wie unten:

%Vor%

(Jede Zeile der obigen Daten ist ein Objekt mit den Feldern "key" und "value", alle in einer Liste List<DataObject> )

Ich möchte die Daten zu einem Map<String, List<String>> wie folgt erstellen:

%Vor%

Wie erreichen Sie die obige Map Struktur von den Datenobjekten?

** * *** Außerdem * * * * **

Ich bin mehr daran interessiert, reine JDK-Klassen oder -Schnittstellen zu verwenden, um das Ergebnis zu erzielen, anstatt eine externe Bibliothek zu verwenden. Irgendwelche Hilfe?

    
Mellon 07.06.2012, 08:07
quelle

6 Antworten

7

Ich würde die Guavas Multimap Implementierung verwenden. Aber es ist leicht mit dem Standard JDK aswell machbar.

Beispiel für ein Standard-JDK:

%Vor%

Beispiel Guava:

%Vor%

Ausgabe (beide Implementierungen):

%Vor%     
dacwe 07.06.2012 08:12
quelle
4
%Vor%     
rius 07.06.2012 08:41
quelle
3

Das folgende Snippet wird Ihnen helfen.

%Vor%     
Vipul Shah 07.06.2012 08:14
quelle
2

Iteriere über die Objekte. Für jedes Objekt erhalten Sie die entsprechende Liste von der Karte. Wenn null, erstellen Sie eine neue Liste und legen Sie sie in die Karte. Fügen Sie den Wert dann zur Liste hinzu.

Oder verwenden Sie Guavas ListMultimap , die das für Sie tun wird.

    
JB Nizet 07.06.2012 08:11
quelle
1
%Vor%     
scarba05 07.06.2012 08:12
quelle
0

So etwas vielleicht?

%Vor%

Pseudocode:

%Vor%

Alternativ können Sie Guava ListMultiMap verwenden .

    
Buhake Sindi 07.06.2012 08:12
quelle