Log*_*Wlv 10 java sorting comparator java-8
我用a Comparator来排序Student对象列表.
我想反转id属性的排序,但using reverse()方法将它应用于整个排序.
怎么让它发生在id?
到目前为止,这是我的代码:
 public List<Student> getStudents(List<String> events) {
    Comparator<Student> comparatorStudents = Comparator.comparing(Student::getCGPA).thenComparing(Student::getName)
      .thenComparingInt(Student::getID).reverse();
    List<Student> students = new ArrayList<Student>();
    //Filling students
    Collections.sort(students, comparatorStudents);
    return students;
  }
Run Code Online (Sandbox Code Playgroud)
    将最后一位更改为:
.thenComparing(Student::getID, Comparator.reverseOrder())
Run Code Online (Sandbox Code Playgroud)
或者,如果您想避免自动装箱:
.thenComparing(Comparator.comparingInt(Student::getID).reversed())
Run Code Online (Sandbox Code Playgroud)
        reversed()将内部调用thenComparing:
public List<Student> getStudents(List<String> events) {
    Comparator<Student> comparatorStudents = Comparator.comparing(Student::getCGPA)
       .thenComparing(Student::getName)
       .thenComparing(Comparator.comparingInt(Student::getID).reversed());
    List<Student> students = new ArrayList<Student>();
    //Filling students
    Collections.sort(students, comparatorStudents);
    return students;
}
Run Code Online (Sandbox Code Playgroud)