我想按字母順序排序我的ArrayList
。所以我寫了一個的方法。 如果我的員工有相同的姓名,我想根據他們的薪水對他們進行分類,這意味着應該先打印出薪水較高的員工。Java:使用條件對ArrayList中的對象進行排序
那麼,我成功地設法按字母順序排序,但我不知道如何比較,如果員工有相同的名稱,如果是這樣的話,應該打印薪水較高的員工。謝謝。
ArrayList<Employee> employees = new ArrayList<Employee>();
public void sortEmployees(){
Collections.sort(employees, (p1, p2) -> p1.name.compareTo(p2.name));
for(Employee employee: employees){
System.out.println("ID: " + employee.ID + END_OF_LINE + "Name: "+employee.name + END_OF_LINE + "Salary: " + employee.grossSalary);
System.out.println(""); // just an empty line
}
}
你快到了。修改你的比較器,如果'compareTo()'不爲零,則使用此值,否則比較薪水並使用該值。 – dave
對不起,我沒有完全明白。你介意在代碼中顯示我嗎? – JavaTeachMe2018
'Comparator.comparing(e - > e.name).thenComparingInt(e - > suchrossSalary)' – shmosel