2012-02-08 66 views
1

基本上我有一个员工数组,有佣金,工资和小时工。我需要显示一个按字母顺序排列的员工名单。如果姓氏相同,名字也需要按字母顺序排列。我该如何去做这件事。使用compareTo(String)来字符串数组中的字符串?

+0

究竟你的数组包含什么?它是具有你提到的值或什么的对象数组?你也没有提到包含名字的数组,那么从哪里来? – John3136 2012-02-08 23:33:21

+0

该数组中有名字和姓氏。 – kel 2012-02-09 00:15:13

回答

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(); 
    } 
}); 
相关问题