13_Comparable
Code-Dateien
| Dateiname | Aktion |
|---|---|
| CODECode_Mitarbeiter.zip | Download |
PDF-Dokumente
| Dateiname | Aktion |
|---|---|
| PDFFolie_Mitarbeiter.pdf | Öffnen |
| PDFUebung_Speise.pdf | Öffnen |
| PDFUebung_Wohnung.pdf | Öffnen |
Videos
| Dateiname | Aktion |
|---|---|
| VIDEOVideo_Fahrzeug_D | Abspielen |
| VIDEOVideo_Mitarbeiter_D | Abspielen |
Lernmaterialien
Interface Comparable
Primitive Datentypen
Bei primitiven Datentypen ( int,
double, char, boolean …) kann man
die Werte direkt mit > < == ... überprüfen.
Objekte
Der Vergleich von Objekten prüft die Objektreferenz und NICHT den Inhalt.
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:
< 0 → this ist kleiner als
other= 0 → beide sind gleich (für die Sortierung)
> 0 → this 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());
}
}