У меня есть ученик класса - int age, int height и Name;
У меня есть n объектов ученического класса, и я пытаюсь отсортировать их сначала по возрасту, если есть связь, то по росту, если есть связь, рандомизировать имя
У меня есть класс
class StudentComparator implements Comparator{
public int compare(Object 1, Object2)
{
// Logic
}
}
У меня есть основной класс
class StudentSorter {
// Initialise student objects etc
// Have an array of students: students[]
Array.Sort(students,new StudentComparator() )
// print values
}
Проблема, с которой я сталкиваюсь, заключается в том, что Output не похож на логику, которую я использую в методе сравнения класса StudentComparator.
Логика есть:
if(Student1.age > student2.age)
{
return 1;
}
else if(Student1.age < student2.age)
{
return -1;
}
else
{
if(Student1.height > Student2.height)
return 1;
else if(Student1.height < Student2.height)
return -1;
else
return 0;
}
Ввод:
15 6 Джон
16 5 Сэм
17 6 Руни
вывод: (независимо от того, как я играюсь с логикой или даже комментирую ее)
17 6 Rooney
16 5 Sam
15 6 John
В чем может быть проблема?