public
class
MultipleSort {
public
static
void
main(String[] args) {
List<employee> emplist =
new
ArrayList<employee>();
emplist.add(
new
Employee(
353744
,
"MCA"
,
"Athiruban"
,
47000
));
emplist.add(
new
Employee(
311344
,
"CSE"
,
"Nandhini"
,
41000
));
emplist.add(
new
Employee(
351144
,
"EEE"
,
"Kishore"
,
44400
));
emplist.add(
new
Employee(
353321
,
"MCA"
,
"Karthik"
,
37000
));
emplist.add(
new
Employee(
353711
,
"CSE"
,
"Gopal"
,
37000
));
emplist.add(
new
Employee(
353743
,
"IT"
,
"AthiNivas"
,
67000
));
defaultSortandDisplay(emplist);
sortByDeptAndThenByName(emplist);
}
private
static
void
defaultSortandDisplay(List<employee> emplist) {
Collections.sort(emplist);
System.out.println(
"DefaultSortandDisplay->\n"
+ emplist);
}
private
static
void
sortByDeptAndThenByName(List<employee> emplist) {
Map<string, list<employee=
""
>> mapSortedByDept =
new
TreeMap<string, list<employee=
""
>>();
List<employee> finallist =
new
ArrayList<employee>();
for
(Employee e : emplist) {
if
(mapSortedByDept.containsKey(e.getDeptname()) ==
true
) {
mapSortedByDept.get(e.getDeptname()).add(e);
}
else
{
List templist =
new
ArrayList<employee>();
templist.add(e);
mapSortedByDept.put(e.getDeptname(), templist);
}
}
System.out.println(
"Ordered by Department->\n"
+ mapSortedByDept);
Collection<list<employee>> collectionSortedByDept = mapSortedByDept.values();
for
(List indvlist : collectionSortedByDept) {
Collections.sort(indvlist);
finallist.addAll(indvlist);
}
System.out.println(
"Ordered by name within Department->\n"
+ mapSortedByDept);
System.out.println(
"Final list->\n"
+ finallist);
}
}
</list<employee></employee></employee></employee></string,></string,></employee></employee></employee></employee>