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