Hi,
Folgende Situation, das Projekt besteht aus 3 Klassen, Prüfungstermin, Prüfung und Student. Jede Prüfung hat ein Studenten Attribut und die Klasse Prüfungstermin hält eine Liste mit Prüfungen. Nun möchte ich die Liste nach dem Studentenname sortieren, mir wurde nahe gelegt den Comparator in der Klasse Studenten anzulegen, weil sich in dieser das Attribut befindet nach dem sortiert werden soll. Ist die folgende Variante richtig? Mir scheint das ganze etwas kompliziert und unschön, da ich den Comparator erst in Prüfungstermin erstellt hatte.
Student
Prüfung
Aufruf in Prüfungstermin
Danke
Zenic
Folgende Situation, das Projekt besteht aus 3 Klassen, Prüfungstermin, Prüfung und Student. Jede Prüfung hat ein Studenten Attribut und die Klasse Prüfungstermin hält eine Liste mit Prüfungen. Nun möchte ich die Liste nach dem Studentenname sortieren, mir wurde nahe gelegt den Comparator in der Klasse Studenten anzulegen, weil sich in dieser das Attribut befindet nach dem sortiert werden soll. Ist die folgende Variante richtig? Mir scheint das ganze etwas kompliziert und unschön, da ich den Comparator erst in Prüfungstermin erstellt hatte.
Student
Java:
public static final Comparator<Student> NAME_COMPARATOR = new Comparator<Student>() {
public int compare(Student lhs, Student rhs) {
int result = lhs.getNachname().compareTo(rhs.getNachname());
if (result > 0)
return 1;
else if (result < 0)
return -1;
return 0;
}
};
Prüfung
Java:
public static final Comparator<Pruefung> NAME_COMPARATOR = new Comparator<Pruefung>() {
public int compare(Pruefung lhs, Pruefung rhs) {
return lhs.getStudent().NAME_COMPARATOR.compare(lhs.getStudent(), rhs.getStudent());
}
};
Aufruf in Prüfungstermin
Java:
Collections.sort(cacheList, new Pruefung().NAME_COMPARATOR);
Danke
Zenic