2012-02-08 101 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(); 
    } 
}); 
相關問題