In this java tutorial we are going to understand the sorting of a List with the help of Comparator interface.
So we will use sort(arrayToSort,Comparator) of Collections and Arrays to sort the list.Now we have to create a class which implements the comparator interface but before that we should have the class for which sorting is done.So lets create that first.
package com.techy.rajeev;
public class Employee{
private String ename;
private int eid;
private double salary;
public String getEname() {
return ename;
}
public Employee(String ename, int eid, double salary) {
super();
this.ename = ename;
this.eid = eid;
this.salary = salary;
}
public void setEname(String ename) {
this.ename = ename;
}
public int getEid() {
return eid;
}
public void setEid(int eid) {
this.eid = eid;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee [ename=" + ename + ", eid=" + eid + ", salary="
+ salary + "]";
}
}
Now lets create the Sorter class.
package com.techy.rajeev;
import java.util.Comparator;
public class SortByName implements Comparator<Employee> {
@Override
public int compare(Employee o1, Employee o2) {
return o1.getEname().compareTo(o2.getEname());
}
}
Now lets do the sorting
package com.techy.rajeev;
import java.util.*;
public class TestSorting {
public static void main(String[] args) {
ArrayList<Employee>al=new ArrayList<Employee>();
al.add(new Employee("Anonymous",1,12345.00));
al.add(new Employee("Hacker",2,32423));
al.add(new Employee("Cba",3,23434));
System.out.println("Before:"+al);
SortByName sbn=new SortByName();
Collections.sort(al,sbn);//passing the sorter to sort
System.out.println("After:"+al);
}
}
Output:
Before:[Employee [ename=Anonymous, eid=1, salary=12345.0], Employee [ename=Hacker, eid=2, salary=32423.0], Employee [ename=Cba, eid=3, salary=23434.0]]
After:[Employee [ename=Anonymous, eid=1, salary=12345.0], Employee [ename=Cba, eid=3, salary=23434.0], Employee [ename=Hacker, eid=2, salary=32423.0]]
Now I hope you know how to sort the list using comparator.Keep reading.