Я посмотрел на многие вопросы, которые были заданы, которые кажутся похожими, но ни один из них не решает полностью мою проблему.
У меня есть класс с именем Student, класс с именем RollManager и драйвер с именем RollDriver.Класс Student позволяет пользователю вводить данные для учащегося, такие как его имя, специализация, средний балл, классификация и т. Д.
В классе RollManager есть ArrayList с именем classRoll, который содержит объекты типа Student (выглядит следующим образом: ArrayList<Student> classRoll = new ArrayList<>();
В RollDriver есть меню, которое позволяет пользователю делать несколько вещей. Среди них мне нужно иметь возможность сортировать объекты Student по их именам, а также отдельную опцию, которая позволяет мне сортироватьих GPA.
Проблема в том, что когда я пытаюсь использовать Collections.sort (classRoll), он не знает, как их сортировать. Поэтому я создал метод в классе RollManager под названием sortName, ноКак мне указать, что я хочу сортировать по значению «имя» объектов Student? Вот мой код:
RollManager:
public static void sortName(ArrayList<Student> classRoll)
{
for(int i = 0; i < classRoll.size(); i++)
{
int pos = i;
for(int n = i; n < classRoll.size(); n++)
{
if(classRoll.get(n).equals(classRoll.get(pos)))
{
pos = n;
}
}
}
}
Опция в RollDriver для сортировки:
else if(choice == 8)
{
RollManager.sortName(classRoll);
System.out.println (classRoll);
}
Я не получаю никаких ошибок при запуске, но ничего не происходит. Объекты не сортируются по-другому.
Это некоторые из предварительных добавленийОбъекты ed, которые я добавил в classRoll для проверки моего кода (классификация - enum):
Student student2 = new Student("John", "Doe", "COMM", 120, 3.65, Classification.FRESHMAN);
Student student3 = new Student("Bob", "Ross", "ARTS", 200, 3.99, Classification.OTHER);
Student student4 = new Student("Liev", "Schreiber", "FILM", 100, 2.53, Classification.GRADUATE);
Student student5 = new Student("Maury", "Povich", "PSCI", 75, 2.24, Classification.JUNIOR);
Student student6 = new Student("Bill", "Leidermann", "CSCI", 90, 2.95, Classification.SENIOR);
classRoll.add (student2);
classRoll.add (student3);
classRoll.add (student4);
classRoll.add (student5);
classRoll.add (student6);
Я надеюсь, что этой информации достаточно.Я могу опубликовать больше моего кода, если это необходимо.Спасибо за любую помощь!