Behält Collections.sort die Reihenfolge für gleiche Elemente bei?

8

Ich habe eine Liste von Objekten, die nach einem Datumsparameter geordnet sind und möchte sie nach Kategorie-Parametern neu anordnen, aber die Datumsreihenfolge innerhalb der Kategorie beibehalten.

Reicht so etwas oder muss ich einen Komparator implementieren, der das Datum für Objekte der gleichen Kategorie berücksichtigt?

%Vor%     
NotGaeL 19.02.2015, 18:16
quelle

1 Antwort

14

Der Code in Ihrer Frage wird tun, was Sie brauchen, denn Collections.sort() behält die Reihenfolge der gleichen Elemente bei.

Aus dem Dokumentation :

  

Diese Art ist garantiert stabil : gleiche Elemente werden aufgrund der Sortierung nicht neu geordnet.

Mit anderen Worten, wenn die Einträge nach dem Datum vor dem sort() sortiert sind, bleiben sie nach Datum in jeder Kategorie nach dem sort() geordnet.

Wenn Sie sich nicht auf die ursprüngliche Reihenfolge verlassen möchten, können Sie Ihren Vergleicher einfach erweitern, um zuerst die Kategorien zu vergleichen und dann die Verbindungen mit den Daten zu trennen.

    
NPE 19.02.2015, 18:21
quelle