アルファベット順にArrayList
をソートしたいと思います。したがって、私はsortEmployees
メソッドを書いた。 従業員が同じ名前の場合、私は給与に基づいてソートしたいと考えています。つまり、給与の高い従業員を最初に印刷する必要があります。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 - > abnrossSalary)' – shmosel