Die originale Aufgabenstellung:
soweit so gut, ich wüsste in etwa die Lösung, wenn ich nur nach Wohnort sortieren müsste. Nämlich etwa so:
Aber:
1. Würde meine Lösung für 'nur Wohnort' überhaupt stimmen?
2. Wie muss ich vorgehen, wenn ich mehrere Argumente vergleichen möchte?
Danke für eure Tipps.
Die Instanzen einer Java-Klasse Person enthalten Daten über Personen.
Die Klasse soll das Interface Comparable<Person> so implementieren, dass Personen durch die Methode compareTo(...) nach Wohnort, Name, Vorname (in dieser Rangfolge) geordnet werden (also so ähnlich wie in einem gedruckten Telefonbuch).
(In SQL würden Sie schreiben „... order by wohnort, name, vorname ...“).
Um Strings zu vergleichen / ordnen sollen Sie die Tatsache benützen, dass die Java-Klasse String das Interface Comparable<String> implementiert.
Schreiben Sie die Methode compareTo(...) der Klasse Person.
public class Person implements Comparable<Person> {
private String wohnort, name, vorname;
...
}
Das Interface Comparable<T> ist gemäss JDK-Help so definiert:
public interface Comparable<T> { public int compareTo(T o); }
Die Klasse String ist gemäss JDK-Help so definiert:
public final class String extends Object implements Comparable<String> ...
soweit so gut, ich wüsste in etwa die Lösung, wenn ich nur nach Wohnort sortieren müsste. Nämlich etwa so:
Code:
public int compareTo(Person p) {
if (this > p.wohnort) return -1;
if (this < p.wohnort) return 1;
return 0;
}
Aber:
1. Würde meine Lösung für 'nur Wohnort' überhaupt stimmen?
2. Wie muss ich vorgehen, wenn ich mehrere Argumente vergleichen möchte?
Danke für eure Tipps.