Objekt-Arrays in Java sortieren, Teil 1
Um in Java ein Array von beliebigen, gleichartigen Objekten nach bestimmten Kriterien sortieren zu lassen, ist es nicht nötig, selbst mit komplizierten Schleifen und Zwischenarrays zu arbeiten. Viel einfacher lässt sich das mit dem Interface java.lang.Comparable realisieren.
Die Klasse der zu sortierenden Objekte implementiert Comparable, welches für diese Klasse typisiert wird:
public class MyClass implements Comparable<MyClass> { // ... }
Nun muss die von Comparable vorgeschriebene Methode compareTo(Object obj) implementiert werden. Durch die Typisierung kann statt Object direkt eine Instanz von MyClass übergeben werden:
public int compareTo(MyClass obj) { // ... }
In dieser Methode werden die Sortierkriterien ausgewertet, wobei die Rückgabewerte für die Sortierung entscheidend sind: -1 wird den Wert näher an den Arrayanfang setzen, 1 näher ans Ende. Dies könnte wie folgt aussehen:
public int compareTo(MyClass obj) { if(this.value < obj.value) { return -1; } if(this.value > obj.value) { return 1; } return 0; }
Damit sind die Vorbereitungen komplett und die Objekte vom Typ MyClass können durch folgenden Aufruf unkompliziert sortiert werden:
java.util.Arrays.sort(myArray);
Newsletter
Anmelden |