import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
class Employee implements Comparator<Employee>{
String name;
String id;
public Employee() {}
public Employee(String name, String id) {
this.name = name;
this.id = id;
}
@Override
public int compare(Employee obj1, Employee obj2) {
// sort Employee on basis of id(descending order)
return obj2.name.compareTo(obj1.name);
}
// toString() method overrides Object class’s toString() method.
// toString() method is used to give a string representation of an object.
@Override
public String toString() {
return "Employee{" + "name=" + name + ", id=" + id + '}';
}
}
/**
* @author AnkitMittal
* Copyright (c), AnkitMittal JavaMadeSoEasy.com
* Main class
*/
public class ComparatorUsage {
public static void main(String[] args) {
Employee emp1=new Employee("sam","4");
Employee emp2=new Employee("amy","2");
Employee emp3=new Employee("brad","1");
ArrayList<Employee> list=new ArrayList<Employee>();
list.add(emp1);
list.add(emp2);
list.add(emp3);
System.out.println("list Before sorting : \n"+list);
Collections.sort(list,new Employee());
System.out.println("\nlist after sorting on basis of name(descending order) : \n"+list);
}
}
/*OUTPUT
list Before sorting :
[Employee{name=sam, id=4}, Employee{name=amy, id=2}, Employee{name=brad, id=1}]
list after sorting on basis of name(descending order) :
[Employee{name=sam, id=4}, Employee{name=brad, id=1}, Employee{name=amy, id=2}]
*/
|
Program to sort Employee list on basis of name in descending order by implementing Comparator interface and overriding its compare method
Must read for you :