Huba Geschrieben 30. Oktober 2012 Geschrieben 30. Oktober 2012 Guten tag, heute stell ich mal wieder eine Frage. Also momentan lerne ich Java und bin beim Thema Comparatoren, wo ich noch nicht ganz durchgestiegen bin. Ich muss einen Comparator schreiben der meine arralist mit "Kunden objekten" sortiert. Erst den nachnamen und dann den vornamen und dann zurück gibt. Mein Anfang: Aufruf... Collection.sort(kunden, new KundenComparator()); class KundenComparator implements Comparator<Kunde> { @Override public int compare(Kunde k1, Kunde k2) { } Wäre nett wenn mir jemand helfen kann, villeicht auch mit einer leichteren Methode. Hoffe ich habe es klar ausgedrückt Zitieren
Huba Geschrieben 30. Oktober 2012 Autor Geschrieben 30. Oktober 2012 Der hat jetzt meinen Code leider bischen blöd aneinander gerreiht Zitieren
Klotzkopp Geschrieben 30. Oktober 2012 Geschrieben 30. Oktober 2012 Die Vorgehensweise ist eigentlich immer gleich: Zuerst prüfst du, ob die Objekte sich in der wichtigsten Eigenschaft (bei dir: Nachname) unterscheiden. Falls ja, gibst du das entstprechende Vergleichsergebnis zurück. Falls die wichtigste Eigenschaft gleich ist, machst du dasselbe mit der nächsten usw. Wenn alle für die Sortierung relevanten Eigenschaften gleich sind, gibst du 0 zurück. Zitieren
Huba Geschrieben 30. Oktober 2012 Autor Geschrieben 30. Oktober 2012 Kann ich sagen " k1.getNachname.compareto(k2.getNachname)"? ..... ich habe nämlich mit get und set gearbeitet. Oder habe ich da einen Denkfehler? Zitieren
Klotzkopp Geschrieben 30. Oktober 2012 Geschrieben 30. Oktober 2012 int nachnamevergleichsergebnis = k1.getNachname().compareTo(k2.getNachname()); if(nachnamevergleichsergebnis != 0) // Nachnamen sind nicht gleich return nachnamevergleichsergebnis; // Jetzt dasselbe für Vorname // Und am Ende, wenn alles gleich war: return 0; [/php] Zitieren
Huba Geschrieben 30. Oktober 2012 Autor Geschrieben 30. Oktober 2012 Hmm ok dann war ich schon auf dem richtigen weg . Danke:uli Zitieren
Huba Geschrieben 30. Oktober 2012 Autor Geschrieben 30. Oktober 2012 Was ich dann noch nicht ganz verstehe ist "return 0" was der dann genau zurück gibt. Zitieren
rny Geschrieben 30. Oktober 2012 Geschrieben 30. Oktober 2012 Naja, wenn für die zwei Objekte die zu vergleichenden Attribute gleich sind, gibst du 0 zurück. Da ändert sich dann beim sortieren nichts an der Reihenfolge, bleibt an der Stelle einfach so wie es ist. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.