Komparatoren
Mit Hilfe der Methode int compareTo(o: T)
der Schnittstelle Comparable<T>
bzw. der Methode int compare(o1: T, o2: T)
der Schnittstelle Comparator<T>
können Objekte einer Klasse miteinander verglichen werden. Der Rückgabewert
beider Methoden gibt die Ordnung der zu vergleichenden Objekte an:
- Rückgabewert kleiner Null: das Vergleichsobjekt ist größer
- Rückgabewert gleich Null: beide Objekte sind gleich groß
- Rückgabewert größer Null: das Vergleichsobjekt ist kleiner
Objekte der Klasse Foo
können durch die Implementierung der Methode
int compareTo(o: T)
der Schnittstelle Comparable<T>
miteinander verglichen
werden.
Container.java
public class Container implements Comparable<Container> {
private String value;
public Container(String value) {
this.value = value;
}
public void setValue(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public int compareTo(Container o) {
return value.compareTo(o.value);
}
}
In der main-Methode der Startklasse wird mit Hilfe der statischen Methode
void sort(list: List<T>)
der Klasse Collections
eine Liste mit Objekten der
Klasse Foo
sortiert. Aufgrund der Implementierung der compareTo-Methode wird
die Liste aufsteigend nach dem Attribut bar
sortiert.
MainClass.java
public class MainClass {
public static void main(String[] args) {
List<Container> containers = new ArrayList<>();
containers.add(new Container("Winter"));
containers.add(new Container("is"));
containers.add(new Container("Coming"));
Collections.sort(containers);
}
}