Comparable Comparator

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

package EmployeeComparator;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;

class EmployeeComparator1 implements Comparable {


int eid;
int salary;
String ename;
String email;

public EmployeeComparator1(int eid, int salary, String ename, String email) {


this.eid = eid;
this.salary = salary;
this.ename = ename;
this.email = email;
}

public String toString() {


return "eid=" + eid + ", salary=" + salary + ", ename=" + ename + ",
email=" + email;
}

public int compareTo(Object o) {


int eid2 = this.eid;
EmployeeComparator1 emp1 = (EmployeeComparator1) o;
int eid1 = emp1.eid;
if (eid1 > eid2) {
return -1;
} else if (eid1 < eid2) {
return +1;
} else {
return 0;
}

}
}

class SalaryComparator implements Comparator {


public int compare(Object o1, Object o2) {
EmployeeComparator1 emp1 = (EmployeeComparator1) o1;
EmployeeComparator1 emp2 = (EmployeeComparator1) o2;
if (emp1.salary > emp2.salary) {
return +1;
} else if (emp1.salary < emp2.salary) {
return -1;
} else {
return 0;
}
}
}

class SnameComparator implements Comparator {


public int compare(Object o1, Object o2) {
EmployeeComparator1 emp1 = (EmployeeComparator1) o1;
EmployeeComparator1 emp2 = (EmployeeComparator1) o2;
return emp1.ename.compareTo(emp2.ename);
}

class EmailComparator implements Comparator {


public int compare(Object o1, Object o2) {
EmployeeComparator1 emp1 = (EmployeeComparator1) o1;
EmployeeComparator1 emp2 = (EmployeeComparator1) o2;
return emp1.email.compareTo(emp2.email);
}
}

public class EmployeeComp {


public static void main(String[] args) {
ArrayList<EmployeeComparator1> t = new
ArrayList<EmployeeComparator1>();
EmployeeComparator1 emp1 = new EmployeeComparator1(110, 40000,
"Rahman", "rahman4u@gmail.com");
EmployeeComparator1 emp2 = new EmployeeComparator1(102, 41000,
"Akhlaquer", "rahman4u1991@gmail.com");
EmployeeComparator1 emp3 = new EmployeeComparator1(103, 10000,
"Shuaib", "sms@yahoo.com");
EmployeeComparator1 emp4 = new EmployeeComparator1(105, 15000, "Mani",
"mani@gmail.com");
t.add(emp1);
t.add(emp2);
t.add(emp3);
t.add(emp4);
System.out.println("No Sorting------");
Collections.sort(t);
Iterator<EmployeeComparator1> itr = t.iterator();
while (itr.hasNext()) {
EmployeeComparator1 emp = itr.next();
System.out.println(emp);
}
System.out.println("Sorting based on Salary-------");
Collections.sort(t,new SalaryComparator());
itr = t.iterator();
while (itr.hasNext()) {
EmployeeComparator1 emp = itr.next();
System.out.println(emp);
}
System.out.println("Sorting based on Sname----");
Collections.sort(t, new SnameComparator());
itr = t.iterator();
while (itr.hasNext()) {
EmployeeComparator1 emp = itr.next();
System.out.println(emp);
}
/*
System.out.println("Sorting based on Email");
Collections.sort(t, new EmailComparator());
itr = t.iterator();
while (itr.hasNext()) {
EmployeeComparator1 emp = itr.next();
System.out.println(emp);
}*/
}
}

You might also like