überschreiben Sie die abstrakte Methode compare()

Hi ich bin einigermaßen neu zu Programmieren und ich habe Schwierigkeiten mit meiner Methode vergleichen, ich habe mehrere Klassen, meine erste Frage ist, mit meinen Eltern-Klasse.

Bekomme ich diesen Fehler:

Person is not abstract and does not override Methode compare(java.lang.Object, java.lang.Objekt) im Komparator

    public class Person implements Comparator
    {
     //some methods

    public int compare(Person p1, Person p2)
    {
       //if last names are the same compare first names
       if(p1.getLastName().equals(p2.getLastName()))
       {
           return p1.getFirstName().compareTo(p2.getFirstName());
       }
       return p1.getLastName().compareTo(p2.getLastName());

    }

Mein Kind Klasse sieht einige Sache wie diese:

    public class Player extends Person implements Comparator
    {
      //some methods

    public int compare(Player p1, Player p2)
    {
       if(p1.getGamesPlayed()<p2.getGamesPlayed())

       {
          return -1;
       }else if (p1.getGamesPlayed()==p2.getGamesPlayed())
       {
          return 0;
       }else
       {
          return 1;
       }
     }

Ich habe auch ein club-Klasse, die speichert alle Informationen in einer ArrayList<Player>team.

mein interface :

    public interface Comparator<T>
    {
        int compare(T o1, T o2);
    }

und ich habe auch diese Klasse

   public class ComparePlayers implements Comparator<Player>
   {

      public int compare(Player p1, Player p2)
      {
         if(p1.getGamesPlayed()< p2.getGamesPlayed())
         {
            return -1;
         }else if(p1.getGamesPlayed()== p2.getGamesPlayed())
         {
            return p1.getLastName().compareTo(p2.getLastName());
         }else
         {
             return 1;
         }
       }

ist die Skillung für diese ist:

Wenn ein neuer Spieler unterschrieben ist, kann Sie/er sollte eingefügt werden, in der Club-Klasse in alphabetischer Reihenfolge der Nachnamen (nach-und Vorname, wenn der Nachname sind identisch). Um dies zu tun machen Sie Ihre Person und Spieler-Klassen implementieren das entsprechende Vergleichbare Schnittstelle.

Schreiben Sie eine Klasse ComparePlayers, setzt der Komparator<Player> - Schnittstelle. Es sollte vergleichen Spieler durch die Anzahl der gespielten Spiele (und dann durch die alphabetische Reihenfolge der Familiennamen, wenn die Anzahl der gespielten Spiele ist die gleiche). Implementiere einen neuen Konstruktor für die Club-Klasse, nimmt einen Komparator<Player> parameter. Daher schreiben Sie ein main Programm, das drucken von Informationen über jeden Spieler in den club, wo die Spieler aufgelistet sind, in absteigender Reihenfolge der Spiele gespielt. Damit sollte die Bestellung diktiert werden durch das Hauptprogramm, ohne den code ändern, in allen anderen Klassen.

Tut mir Leid, wenn dies ist lange umständlich, aber ich bin kämpfen, um zu sehen, was falsch ist, ich habe versucht, verschiedene Variationen und es will einfach nicht funktionieren. dies ist am Freitag, nur ein push in die richtige Richtung wäre enorm geschätzt.

Anstatt zu schreiben Ihre eigenen Comparator-interface, verwenden Sie das in der java.util-Paket.

InformationsquelleAutor Cjb1982 | 2011-04-30

Schreibe einen Kommentar