Auf Thema antworten

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]



Oben