Jak napisać metodę compareTo, która porównuje obiekty?
Uczę się o tablicach i zasadniczo mam tablicę, która zbiera nazwisko, imię i wynik.
Muszę napisaćcompareTo
metoda, która porówna nazwisko, a następnie imię, aby lista mogła być posortowana alfabetycznie, począwszy od nazwisk, a następnie, jeśli dwie osoby mają to samo nazwisko, sortuje imię.
Jestem zdezorientowany, ponieważ wszystkie informacje w mojej książce to porównywanie liczb, a nie obiektów i ciągów.
Oto, co do tej pory zakodowałem. Wiem, że to źle, ale przynajmniej wyjaśnia to, co myślę, że robię:
<code>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; } </code>
Wiem, że<
i>
symbole są błędne, ale tak jak powiedziałem moja książka pokazuje tylko, jak używaćcompareTo
.