2012-02-08 7 views
1

基本的に私は、手数料、給与、および時間従業員を持つ従業員配列を持っています。私は従業員のアルファベット順リストを表示する必要があります。姓が同じ場合は、最初の名前もアルファベット順にする必要があります。これをどうやって行うのですか?compareTo(String)を使用して配列の文字列をアルファベット順に並べ替えますか?

+0

あなたの配列は正確には何が含まれていますか?あなたが言及した値を持つオブジェクトの配列ですか、何ですか?また、名前を含む配列については言及していないので、どこから来たのでしょうか? – John3136

+0

配列には姓と名があります。 – kel

答えて

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(); 
    } 
}); 
関連する問題