import
java.util.*;
class
Employee {
int
empid;
String name;
int
age;
String dept;
int
salary;
public
Employee(
int
empid, String name,
int
age,
String dept,
int
sal)
{
this
.name = name;
this
.empid = empid;
this
.age = age;
this
.dept = dept;
this
.salary = sal;
}
public
String getDept()
{
return
this
.dept;
}
public
static
void
main(String[] args)
{
List<Employee> empData
=
new
ArrayList<Employee>();
empData.add(
new
Employee(
1
,
"Ajay"
,
25
,
"Technical"
,
35000
));
empData.add(
new
Employee(
3
,
"Chandan"
,
22
,
"Technical"
,
30000
));
empData.add(
new
Employee(
4
,
"Arjun"
,
30
,
"Management"
,
54000
));
empData.add(
new
Employee(
2
,
"Arun"
,
28
,
"Sales"
,
9000
));
empData.add(
new
Employee(
8
,
"Anmol"
,
40
,
"Sales"
,
15000
));
empData.add(
new
Employee(
9
,
"Vivek"
,
20
,
"Management"
,
8000
));
empData.add(
new
Employee(
10
,
"Nikhil"
,
27
,
"Sales"
,
7000
));
empData.add(
new
Employee(
5
,
"Rahul"
,
45
,
"Management"
,
60000
));
empData.add(
new
Employee(
6
,
"Ganesh"
,
32
,
"Sales"
,
35000
));
empData.add(
new
Employee(
7
,
"Vishal"
,
35
,
"Technical"
,
40000
));
empData.add(
new
Employee(
11
,
"Anmol"
,
23
,
"Sales"
,
15000
));
empData.add(
new
Employee(
12
,
"Vivek"
,
29
,
"Management"
,
8000
));
empData.add(
new
Employee(
13
,
"Nikhil"
,
30
,
"Technical"
,
7000
));
System.out.println(
"\n Employee list"
+
" before sorting...\n"
);
System.out.println(
" ID Name Age"
+
" Department Salary \n"
);
for
(Employee e : empData) {
System.out.format(
" %2d %7s %d %10s %d \n"
,
e.empid, e.name, e.age, e.dept, e.salary);
}
Collections.sort(empData,
new
DepartmentComparator()
.thenComparing(
new
AgeComparator()));
System.out.println(
"\n Employee list after sorting...\n"
);
System.out.println(
" ID Name Age Department Salary \n"
);
for
(Employee emp : empData) {
System.out.format(
" %2d %7s %d %10s %d \n"
,
emp.empid, emp.name, emp.age,
emp.dept, emp.salary);
}
}
}
class
DepartmentComparator
implements
Comparator<Employee> {
public
int
compare(Employee e1, Employee e2)
{
return
e1.dept.compareTo(e2.dept);
}
}
class
AgeComparator
implements
Comparator<Employee> {
public
int
compare(Employee e1, Employee e2)
{
if
(e1.age == e2.age)
return
0
;
else
if
(e1.age > e2.age)
return
1
;
else
return
-
1
;
}
}