Vorlesung Informatik 2 - Teil A: Java Kurs

4.5 Das Interface Comparable

Bisher haben wir nur Zahlen sortiert. Wie kann man Objekte sortierbar machen?

Man braucht eine Möglichkeit, zwei Objekte zu vergleichen und zu entscheiden, welches kleiner ist oder ob beide gleich sind. Dazu implementiert die Klasse folgendes Interface:

interface java.lang.Comparable<T>{
   public int compareTo(T x);
}

Die Methode compreTo vergleicht x mit this und liefert:

  • 0 falls beide gleich sind,
  • 1 falls this>x
  • -1 falls this<x

Beispiel:

class Banane implements Comparable<Banane>{
     private int gewicht;
     ...
     public int compareTo(Banane x){
      if(this.gewicht==x.gewicht) return 0;
        else if(this.gewicht<x.gewicht) return -1;
       else return 1;
    }

Jetzt kann man Bananen sortieren, z.B. einen Bananen Array mit Arrays.sort oder eine LinkedList<Banane> mit Collections.sort.

Ein ausführliches Beispiel findet sich im Video.

Lehrvideo  (YouTube)