Logan Wlv :
I am using a Comparator
to sort a list of Student
objects.
I want to reverse the sorting on the id
property, but using reverse()
method applies it on the whole sorting.
How to make it happens only on the id
?
Here's my code so far:
public List<Student> getStudents(List<String> events) {
Comparator<Student> comparatorStudents = Comparator.comparing(Student::getCGPA).thenComparing(Student::getName)
.thenComparingInt(Student::getID).reverse();
List<Student> students = new ArrayList<Student>();
//Filling students
Collections.sort(students, comparatorStudents);
return students;
}
shmosel :
Change the last bit to:
.thenComparing(Student::getID, Comparator.reverseOrder())
Or, if you want to avoid autoboxing:
.thenComparing(Comparator.comparingInt(Student::getID).reversed())