top of page
Search
Writer's pictureAbhinaw Tripathi

Collections.reverseOrder() in Java with Examples


Collections.reverseOrder() in Java with Examples

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.

Sample Code:

import java.util.ArrayList;

import java.util.Collections;

/**

* @author Abhinaw.Tripathi

*

*/

public class ReverseOrderApp {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

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.

Sample Code:

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]

public static Comparator reverseOrder(Comparator c)

Sample Code:

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


18 views0 comments

Recent Posts

See All
bottom of page