Я пытаюсь сортировать список в порядке убывания с использованием интерфейса компаратора. Но значения не сортируются в порядке убывания. Не уверен, что я делаю неправильно здесь.java - Сортировка в порядке убывания с использованием компаратора
public class Student {
int rollNo;
String name;
int age;
public Student(int RollNo, String Name, int Age){
this.rollNo = RollNo;
this.name = Name;
this.age = Age;
}
}
public class AgeComparator implements Comparator<Student>{
@Override
public int compare(Student o1, Student o2) {
return o1.age > o2.age ? 1 :(o1.age < o2.age ? -1 : 0); //Ascending
//return o1.age < o2.age ? -1 :(o1.age > o2.age ? 1 : 0); // Descending
}
}
public class Comparator_Sort {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Student> al = new ArrayList<Student>();
al.add(new Student(5978,"Vishnu", 50));
al.add(new Student(5979,"Vasanth", 30));
al.add(new Student(5980,"Santhosh", 40));
al.add(new Student(5981,"Santhosh", 20));
al.add(new Student(5982,"Santhosh", 10));
al.add(new Student(5983,"Santhosh", 5));
Collections.sort(al, new AgeComparator());
for(Student s : al){
System.out.println(s.rollNo+" "+s.name+" "+s.age);
}
}
}
я могу быть в состоянии сортировать список в порядке возрастания, в то время как я не в состоянии сделать это для заказа
return o1.age > o2.age ? 1 :(o1.age < o2.age ? -1 : 0); //Sorted in Ascending
return o1.age < o2.age ? -1 :(o1.age > o2.age ? 1 : 0); // Not sorted in Descending
Компаратор документации по убыванию - возвращает: отрицательное целое число, ноль, или положительное целое число, поскольку первый аргумент меньше, равен или больше второго. Источник находится по адресу here
Может ли кто-нибудь сказать мне, почему сортировка по убыванию не работает?
Если и проверить источник я предоставил, то следующие критерии – Aishu
-1: o1 o2 –
Aishu
Я следую за тот же подход, но в порядке убывания сортировка не работает – Aishu