Ich habe eine Array-Liste, die Anführungszeichen-Objekte enthält. Ich möchte in der Lage sein, alphabetisch nach Name, nach Änderung und prozentualer Änderung zu sortieren. Wie kann ich meine Arraylist sortieren?
%Vor% Erstellen Sie eine geeignete Comparator
, die zwei Elemente vergleicht nach Ihren gewünschten Kriterien. Dann verwenden Sie Collections.sort()
auf Ihrer ArrayList.
Wenn Sie zu einem späteren Zeitpunkt nach verschiedenen Kriterien sortieren möchten, rufen Sie Collections.sort()
erneut mit einem anderen Comparator
auf.
Wenn Sie (fast) immer diese Reihenfolge verwenden möchten, können Sie die Vergleichsschnittstelle zu Quote hinzufügen und eine compareTo-Methode implementieren.
%Vor%Verwenden Sie dann eine sortierte Auflistung oder sortieren Sie eine Liste, und die Anführungszeichen werden sortiert.
Für Ad-hoc-Sortierung ist ein separater, möglicherweise anonymer Comparator besser.
Jeder hat Recht, dass Sie Komparatoren verwenden möchten. Wenn Sie auf dieser Idee aufbauen wollen, wenn Sie in der Lage sein wollen, nach mehreren Kriterien zu sortieren, dann wird eine Klasse wie diese für Sie funktionieren:
%Vor%Dann schreiben Sie einfach sehr einfache Komparatoren für die von Ihnen gewünschten Felder und Sie können sie zu komplexeren Komparatoren leichter und mit mehr Wiederverwendung kombinieren.
Sieh dir den ComparatorChain aus der Apache Commons Collection an. Dies sollte den Job machen. Implementieren Sie keine Logik, wenn sie bereits verfügbar und getestet ist.
Auf der folgenden Website habe ich ein Tutorial: Objekte nach mehreren Attributen sortieren "
Sun hat einen großen Teil seines Tutorials der Sortierung in Java-Sammlungen gewidmet:
Ссылка
Es werden die Vergleichsoperator- und Comparator-Schnittstellen mit Beispielen besprochen.
Siehe Collections.sort mit einem expliziten Comparator (oder der Art Collections.sort, die die Eingabe erfordert, um Vergleichbar , wenn Sie bevorzugen).
Tags und Links java sorting collections arraylist