Sortieren arraylist komplexe Objekte alphabetisch
Ich weiß, dass Collections.sort(myArrayList)
Sortieren einer arraylist alphabetisch, wenn Sie Zeichenfolgen, aber was ist, wenn er etwas komplexeres, wie ein Daten-Objekt mit zwei oder mehr Variablen, einschließlich einer String
. Gibt es eine Möglichkeit Sie zu Sortieren dann?
Wenn es nicht möglich ist, mit Collections
dann kann ich mir vorstellen, dass eine for-Schleife oder standard-Sortier-Algorithmus zu betrachten, die strings-variable, jedes Objekt und bewegen Sie die Objekt-index im array.
Aber ich Frage mich hauptsächlich, wenn ich etwas übersehen über die Collections
Methoden
- Der Guava-Bibliothek hat eine große out-of-the-box-Unterstützung für die Erstellung von composite-Komparatoren. Überprüfen Sie es heraus.
- dies könnte helfen, auch stackoverflow.com/questions/2839137/...
- Das Lesen der JavaDoc werden Sie in die richtige Richtung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden die Funktion, die Sie als zweiten parameter einen Komparator.
Il können Sie übergeben Sie eine Instanz von Comparator Sortieren nach Ihren Bedürfnissen. Beachten Sie, dass die javadoc von Komparator enthält Richtlinien zum Bau von Komparatoren.
Kann man den Komparator als eine anonyme Klasse, wenn es nur lokal verwendet. Hier ist ein Beispiel, wo ich das Sortieren von Objekten in Bezug auf eines Ihrer Felder einen String :
Alternativ können Sie auch Ihre Klasse implementieren, die Vergleichbar - interface, aber das macht nur Sinn, wenn Sie definieren können natürlich (offensichtlich) zu bestellen.
Ich würde erstellen eine innere Klasse die das interface Comparator:
Nun, wenn Sie wollen, Sortieren Sie Ihre Auto-Liste PS: