根据对象的属性优先级对对象列表进行排序

时间:2017-03-18 04:51:28

标签: java sorting arraylist

我正在上课,学生有一些属性,如:

public class Student {
   private String firstName;
   private String middleName;
   private String lastName;

   .....
}

我还有一个学生列表,我必须根据一些属性的优先级排序。例如,第一优先级为firstName,第二优先级为lastName,最后为middleName。我在接受采访时被问到这个问题。使用可比较的我已经为单个属性做了但是我们如何根据不同的优先级进行排序?

1 个答案:

答案 0 :(得分:2)

在Java 8中,使用thenComparing轻松进行链式比较。

Collections.sort(students, Comparator.comparing(s -> s.firstName)
                                 .thenComparing(s -> s.lastName)
                                 .thenComparing(s -> s.middleName));