13_Comparable

Code-Dateien

DateinameAktion
CODECode_Mitarbeiter.zipDownload

PDF-Dokumente

DateinameAktion
PDFFolie_Mitarbeiter.pdfÖffnen
PDFUebung_Speise.pdfÖffnen
PDFUebung_Wohnung.pdfÖffnen

Videos

DateinameAktion
VIDEOVideo_Fahrzeug_DAbspielen
VIDEOVideo_Mitarbeiter_DAbspielen

Lernmaterialien

Interface Comparable

Primitive Datentypen

Bei primitiven Datentypen ( int, double, char, boolean …) kann man die Werte direkt mit > < == ... überprüfen.

001.png

Objekte

Der Vergleich von Objekten prüft die Objektreferenz und NICHT den Inhalt.

002.png

Comparable ist ein Interface in Java, mit dem ein Objekt sagt:

„Ich kann mich mit anderen Objekten meiner Art vergleichen – und zwar in einer festen Reihenfolge.“

Dadurch können Dinge wie Collections.sort(...) oder Arrays.sort(...) deine Objekte automatisch sortieren.

Die eine wichtige Methode: compareTo

Wenn eine Klasse Comparable<T> implementiert, muss sie diese Methode haben:

public int compareTo(T other)

Sie liefert:

  • < 0this ist kleiner als other

  • = 0 → beide sind gleich (für die Sortierung)

  • > 0this ist größer als other

Implementierung

Student.java

public abstract class Student implements Serializable, Comparable<Student> {
    
    @Override
    public int compareTo(Student other) {
        // this <-> other
        return name.compareTo(other.getName());
    }

School.java

    public void sortName() {
        Collections.sort(students);
    }

TestSchool.java

    @Test
    public void testSortName() {
        School s;
        s = new School();
        try {
            s.importSchool("daten.txt");
            System.out.println(s);
            s.sortName();
            System.out.println("================");
            System.out.println(s);
        }
        catch (StudentException e) {
            System.out.println(e.getMessage());
        }
    }