2017-01-02 6 views
-1

Gibt es eine effiziente Methode zum Sortieren einer Java Map mit List als Wert? Ich habe Zeichenfolge als Schlüssel, und ich versuche, Werte zu sortieren, die ich in meiner Objektliste habe.Karte sortieren <String, Liste <Object[]>>

Map<String, List<Object[]>> liste = new TreeMap<String, List<Object[]>>(); 
+0

Für jeden der Einträge der Karte möchten Sie die Werte (Listen) sortieren? – user152468

+0

Geben Sie Beispieldaten an, die Sie sortieren müssen und auf welcher Grundlage? –

+0

Genau, ich muss sie nach ID-Wert sortieren, was Integer ist. Also, für jeden Schlüssel, habe ich Integer und String Wert in meiner Objektliste, und ich muss sie nach ID, von niedrigsten bis höchsten – user2489847

Antwort

1

Dadurch werden die Listen der Integer Objekt in der ersten Array-Eintrag sortieren:

for (List<Object[]> list : liste.values()) { 
     list.sort(Comparator.comparingInt(arr -> ((Integer) arr[0]).intValue())); 
    } 

Es scheint mir, dass du dich richtig funktioniert, obwohl, entwerfen nicht getan haben? Für die meisten Anwendungen sollten Sie Object[] nicht verwenden. Besser, Ihre eigene Klasse zu entwerfen, mit einem int (oder Integer) id und anderen Feldern. Auch Ihre Daten und Anforderungen sind mir nicht völlig klar, daher hoffe ich, dass ich auf dem gleichen Weg bin wie Sie.

+0

ja, du hast geholfen. vielen Dank – user2489847

Verwandte Themen