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

标签 java sorting arraylist

我的学生类(class)有一些属性,例如:

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

   .....
}

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

最佳答案

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

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

关于java - 根据对象属性优先级对对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42870596/

相关文章:

java - 数字排序程序无法找到符号编译错误

java - getIntent 返回 null

java - 如何在 KeyListener Java 中每 100 毫秒更新 SWT 中的 Canvas

c# - 按降序对 SortedList 进行排序 C#

java - 按出现次数对单词列表进行排序的最简单方法

java - spring中如何将JSON请求转换为特定格式的列表?

Java 嵌套 ArrayList 返回对象

java - 如何判断线程是否已完成?

java - 正则表达式仅允许两种模式中的一种

c# - 按字符串排序列表转换为int