1
基本上我有一個員工數組,有佣金,工資和小時工。我需要顯示一個按字母順序排列的員工名單。如果姓氏相同,名字也需要按字母順序排列。我該如何去做這件事。使用compareTo(String)來字符串數組中的字符串?
基本上我有一個員工數組,有佣金,工資和小時工。我需要顯示一個按字母順序排列的員工名單。如果姓氏相同,名字也需要按字母順序排列。我該如何去做這件事。使用compareTo(String)來字符串數組中的字符串?
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();
}
});
究竟你的數組包含什麼?它是具有你提到的值或什麼的對象數組?你也沒有提到包含名字的數組,那麼從哪裏來? – John3136 2012-02-08 23:33:21
該數組中有名字和姓氏。 – kel 2012-02-09 00:15:13