Comparable & Comparator:
- Comparable and Comparator both are interfaces and are used to do sorting in Collection framework.
- Comparable is used for single sorting where as Comparator is used or multiple sorting.
- I will discuss comparable first and its uses with examples then after we will go for Comparator.
Comparable Interface in java:
- It is used to order the objects of user defined classes in defined order.
- Comparable interface is in java.lang package and its having one method compareTo(Object) which takes user defined object as argument.
- It provides Single sorting only that means you can sort the elements on based on single data member only.
- compareTo() method compares current object data member with the specified object. The return type of the method is int.
- Based on the return value that is (+ve,0,-ve) collection will sort the objects.
- Lets go for a sample program and i will explain step by step.
| public class Employee implements Comparable<Employee>{
int id; String name; double salary;
@Override public int compareTo(Employee emp) {
return this.id-emp.id; }
}
|
- Here I wrote a Employee class which implements Comparable interface and I overridden compareTo()
- Here I compared on a data member called “id” and retrned difference of the two employee object ids.
- Now i will write the clint class where i will insert employee objects into a collection type and will sort it.
| package com.tcoj.clint;
import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List;
import com.tcoj.model.Employee;
public class Clint {
public static void main(String[] args) { List<Employee> list=new ArrayList<Employee>(); Employee emp1=new Employee(102, “shaswot”, 11500.89); Employee emp2=new Employee(100, “subham”, 12500.89); Employee emp3=new Employee(107, “ashok”, 11500.99); Employee emp4=new Employee(103, “rahul”, 13501.09);
list.add(emp1); list.add(emp2); list.add(emp3); list.add(emp4); Collections.sort(list); Iterator<Employee> itr=list.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } }
}
|
- Here I created one List and added 4 employee objects.
- When i called Collections.sort() method it sorted according to the compareTo() method defined in Employee class.
OUTPUT:
|
[100,subham,12500.89] [102,shaswot,11500.89] [103,rahul,13501.09] [107,ashok,11500.99] |
It sorted according to id of Employee.You guys can try with name and salary.Let me know with comments if you guys having any doubt on this part.Next topic Comparators.

nice explanation……
can you explain about MAP…? with example..
LikeLiked by 1 person
Thanks, I ll definitely explain about MAP in my next blogs
LikeLike
really good
LikeLike
[…] Comparable & Comparator: […]
LikeLike
nice explanation shubham..
LikeLiked by 1 person
Thanks 😊
LikeLike