java.util.Collections.reverseOrder() method is a java.util.Collections class method.
// Returns a comparator that imposes the reverse of // the natural ordering on a collection of objects // that implement the Comparable interface. // The natural ordering is the ordering imposed by // the objects' own compareTo method public static Comparator reverseOrder()
We can the comparator returned by Collections.reverseOrder() to sort a list in descending order.
// Java program to demonstrate working of Collections.reveseOrder() // to sort a list in descending order import java.util.*; public class Collectionsorting { public static void main(String[] args) { // Create a list of Integers ArrayList<Integer> al = new ArrayList<Integer>(); al.add( 30 ); al.add( 20 ); al.add( 10 ); al.add( 40 ); al.add( 50 ); /* Collections.sort method is sorting the elements of ArrayList in descending order. */ Collections.sort(al, Collections.reverseOrder()); // Let us print the sorted list System.out.println( "List after the use of Collection.reverseOrder()" + " and Collections.sort() :\n" + al); } } |
Output:
List after the use of Collection.reverseOrder() and Collections.sort(): [50, 40, 30, 20, 10]
We can use this method with Arrays.sort() also.
// Java program to demonstrate working of Collections.reveseOrder() // to sort an array in descending order import java.util.*; public class Collectionsorting { public static void main(String[] args) { // Create an array to be sorted in descending order. Integer [] arr = { 30 , 20 , 40 , 10 }; /* Collections.sort method is sorting the elements of arr[] in descending order. */ Arrays.sort(arr, Collections.reverseOrder()); // Let us print the sorted array System.out.println( "Array after the use of Collection.reverseOrder()" + " and Arrays.sort() :\n" + Arrays.toString(arr)); } } |
Output:
Array after the use of Collection.reverseOrder() and Arrays.sort() : [40, 30, 20, 10]
It returns a Comparator that imposes reverse order of a passed Comparator object. We can use this method to sort a list in reverse order of user defined Comparator. For example, in the below program, we have created a reverse of user defined comparator to sort students in descending order of roll numbers.
// Java program to demonstrate working of // reverseOrder(Comparator c) to sort students in descending // order of roll numbers when there is a user defined comparator // to do reverse. import java.util.*; import java.lang.*; import java.io.*; // A class to represent a student. class Student { int rollno; String name, address; // Constructor public Student( int rollno, String name, String address) { this .rollno = rollno; this .name = name; this .address = address; } // Used to print student details in main() public String toString() { return this .rollno + " " + this .name + " " + this .address; } } class Sortbyroll implements Comparator<Student> { // Used for sorting in ascending order of // roll number public int compare(Student a, Student b) { return a.rollno - b.rollno; } } // Driver class class Main { public static void main (String[] args) { ArrayList<Student> ar = new ArrayList<Student>(); ar.add( new Student( 111 , "bbbb" , "london" )); ar.add( new Student( 131 , "aaaa" , "nyc" )); ar.add( new Student( 121 , "cccc" , "jaipur" )); System.out.println( "Unsorted" ); for ( int i= 0 ; i<ar.size(); i++) System.out.println(ar.get(i)); // Sorting a list of students in descending order of // roll numbers using a Comparator that is reverse of // Sortbyroll() Comparator c = Collections.reverseOrder( new Sortbyroll()); Collections.sort(ar, c); System.out.println( "\nSorted by rollno" ); for ( int i= 0 ; i<ar.size(); i++) System.out.println(ar.get(i)); } } |
Output :
Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 131 aaaa nyc 121 cccc jaipur 111 bbbb london
References:
https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#reverseOrder()
This article is contributed by Mohit Gupta. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
.
Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.