Как мне написать метод compareTo, который сравнивает объекты?

Я изучаю массивы, и в основном у меня есть массив, который собирает фамилию, имя и счет.

Мне нужно написать метод compareTo, который будет сравнивать фамилию, а затем имя, чтобы список можно было отсортировать в алфавитном порядке, начиная с фамилий, а затем, если два человека имеют одинаковую фамилию затем он будет сортировать первое имя.

Я запутался, потому что вся информация в моей книге сравнивает числа, а не объекты и строки.

Вот что я пока закодировал. Я знаю, что это неправильно, но это, по крайней мере, объясняет, что я думаю, что делаю:

public int compare(Object obj) // creating a method to compare 
{   
    Student s = (Student) obj; // creating a student object

    // I guess here I'm telling it to compare the last names?
    int studentCompare = this.lastName.compareTo(s.getLastName()); 

    if (studentCompare != 0)
        return studentCompare;
    else 
    {
        if (this.getLastName() < s.getLastName())
            return - 1;

        if (this.getLastName() > s.getLastName())
            return 1;
    }
    return 0;
}

Я знаю, что символы <и >неверны, но, как я уже сказал, моя книга показывает только как использовать compareTo.

29
задан Radiodef 4 April 2018 в 21:06
поделиться