Привет, я довольно новичок в программировании, и у меня возникают трудности с моим методом сравнения, у меня есть несколько классов, моя первоначальная проблема связана с моим родительским классом.
Я получаю эту ошибку:
Person не является абстрактным и не переопределяет сравнение методов (java.lang.Object, java.lang.Object) в Comparator
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());
}
Мой дочерний класс выглядит примерно так:
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;
}
}
У меня также есть клубный класс, в котором хранится вся информация в команде ArrayList <Player>
.
мой интерфейс:
public interface Comparator<T>
{
int compare(T o1, T o2);
}
и у меня тоже есть этот класс
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;
}
}
спецификация для этого:
Когда новый игрок подписан, он / она должны быть включены в класс Клуба в алфавитном порядке фамилии (и имени, если фамилии совпадают). Для этого необходимо, чтобы ваш класс Person и Player реализовали соответствующий интерфейс Comparable.
Напишите класс ComparePlayers, который реализует интерфейс Comparator <Player>
. Он должен сравнивать игроков по количеству сыгранных игр (а затем по алфавиту в порядке фамилии, если количество сыгранных игр одинаково). Реализуйте новый конструктор для класса Club, который принимает параметр Comparator <Player>
. Поэтому напишите основную программу, которая будет печатать информацию о каждом игроке в клубе, где игроки перечислены в порядке убывания сыгранных игр. Это должно позволить порядку диктоваться основной программой без изменения кода в любом из ваших других классов.
Извините, если это долго, но я изо всех сил пытаюсь понять, что не так, я попробовал несколько вариантов, и это просто не сработало. это должно произойти в пятницу, и мы будем очень признательны за толчок в правильном направлении.