Cheap VPS & Xen Server

Residential Proxy Network - Hourly & Monthly Packages

Comparable interface

Comparable interface is used to order the objects of user-defined class.This interface is found in java.lang package and contains only one method named compareTo(Object).It provide only single sorting sequence i.e. you can sort the elements on based on single datamember only.For instance it may be either rollno,name,age or anything else.


public int compareTo(Object obj): is used to compare the current object with the specified object.

We can sort the elements of:

  1. String objects
  2. Wrapper class objects
  3. User-defined class objects
Collections class provides static methods for sorting the elements of collection.If collection elements are of Set type, we can use TreeSet.But We cannot sort the elements of List.Collections class provides methods for sorting the elements of List type elements.

Method of Collections class for sorting List elements

public void sort(List list): is used to sort the elements of List.List elements must be of Comparable type.

Note: String class and Wrapper classes implements the Comparable interface.So if you store the objects of string or wrapper classes, it will be Comparable.

Example of Sorting the elements of List that contains user-defined class objects on age basis

  1. class Student implements Comparable{
  2. int rollno;
  3. String name;
  4. int age;
  5. Student(int rollno,String name,int age){
  6. this.rollno=rollno;
  8. this.age=age;
  9. }
  10. public int compareTo(Object obj){
  11. Student st=(Student)obj;
  12. if(age==st.age)
  13. return 0;
  14. else if(age>st.age)
  15. return 1;
  16. else
  17. return –1;
  18. }
  19. }

  1. import java.util.*;
  2. import*;
  3. class TestSort3{
  4. public static void main(String args[]){
  5. ArrayList al=new ArrayList();
  6. al.add(new Student(101,“Vijay”,23));
  7. al.add(new Student(106,“Ajay”,27));
  8. al.add(new Student(105,“Jai”,21));
  9. Collections.sort(al);
  10. Iterator itr=al.iterator();
  11. while(itr.hasNext()){
  12. Student st=(Student);
  13. System.out.println(st.rollno+“”“”+st.age);
  14.   }
  15. }
  16. }


Output:105 Jai 21
       101 Vijay 23
       106 Ajay 27