die compare funktionen sind größtenteils mist
[code=Java] public int compare(Person a1, Person b1) {
if (a1.getNachname() == b1.getNachname()) { // Strings vergleicht man mit stringA.equals(stringB)
if (a1.getVorname().compareTo(b1.getVorname()) == 0) {
if (a1.getGeburtsjahr() < b1.getGeburtsjahr())
return -1;
else // das else ist überflüssig, da im true die methode fall verlassen wird
return 1;
}
else { // das else ist auch überflüssig
return a1.getVorname().compareTo(b1.getVorname());
}
}
else if (a1.getNachname() == b1.getNachname()) { // die gleiche bedingung nochmal im else if nach dem if macht keinen sinn, unerreichbarer code
return -1;
}
else { // und nochmal überflüssig
return 1;
}[/code]
so wie ich die sache sehe kommt hier praktisch immer 1 raus
[TIPP][code=Java]class PersonComparatorAuf implements Comparator<Person> {
public int compare(Person a1, Person b1) {
if (a1.getNachname().equals(b1.getNachname())) {
if (a1.getVorname().equals(b1.getVorname())) {
if (a1.getGeburtsjahr() < b1.getGeburtsjahr()) {
return -1;
}
}
else {
return a1.getVorname().compareTo(b1.getVorname());
}
}
return 1;
}
}[/code][/TIPP]