基本上我有一个员工阵列,有佣金,薪水和小时工。我需要显示一个按字母顺序排列的员工列表。如果姓氏相同,则名字也需要按字母顺序排列。我该怎么做呢。
答案 0 :(得分:1)
Arrays.sort(employees, new Comparator<Employee>() {
public int compare(Employee a, Employee b) {
int cmp = a.getLastName().compareTo(b.getLastName());
if (cmp == 0) {
cmp = a.getFirstName().compareTo(b.getFirstName());
}
return cmp;
}
});
或者,使用Guava来获得更具可读性且不易出错的内容,
Arrays.sort(employees, new Comparator<Employee>() {
public int compare(Employee a, Employee b) {
return ComparisonChain.start()
.compare(a.getLastName(), b.getLastName())
.compare(a.getFirstName(), b.getFirstName())
.result();
}
});