I am creating a simple program to learn about the Java Comparator class. I have sorted an Arraylist
into order but now I want to sort the list in descending order b
Let's take a simple example we have a class Person with two fields name age and we want to sort an existing collection of persons based on their age so let's assume that we have a class Person with a constructor and add the persons into the list and then sort them unsing the method sort of collection :
Person bachiri = new Person (17,"bachiri");
Person taoufiq = new Person (14,"Taoufiq");
Person abderrahman = new Person (15,"abderrahman");
List persons = new ArrayList<>();
and this this the impelemtation of Agecomparable :
class AgeComparator implements Comparator{
@Override
public int compare(Person person1, Person person2) {
return Integer.compare(person1.getAge(),person2.getAge());
}
}
the trick is to multiple the return method with -1 so the final result will be reversed: class AgeComparator implements Comparator{
@Override
public int compare(Person person1, Person person2) {
return -1 * Integer.compare(person1.getAge(),person2.getAge());
}
}
so now we can get a reversed result :
Collection.sort (Persons, new AgeComparator());