以下是一个示例代码,展示如何按照多个条件对对象数组进行排序:
import java.util.Arrays;
import java.util.Comparator;
class Student {
private String name;
private int age;
private double gpa;
public Student(String name, int age, double gpa) {
this.name = name;
this.age = age;
this.gpa = gpa;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public double getGpa() {
return gpa;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gpa=" + gpa +
'}';
}
}
public class Main {
public static void main(String[] args) {
Student[] students = {
new Student("Alice", 18, 3.8),
new Student("Bob", 20, 3.5),
new Student("Charlie", 19, 3.9),
new Student("David", 19, 3.7)
};
// 按照年龄升序,如果年龄相同则按照GPA降序排序
Arrays.sort(students, Comparator.comparing(Student::getAge)
.thenComparing(Comparator.comparing(Student::getGpa).reversed()));
// 打印排序结果
for (Student student : students) {
System.out.println(student);
}
}
}
这个示例中,我们定义了一个Student
类,包含了姓名、年龄和GPA属性。然后,我们创建了一个Student
对象数组,并使用Arrays.sort()
方法对其进行排序。
排序时,我们使用了Comparator
接口的comparing()
方法,按照年龄升序排序。然后,我们使用thenComparing()
方法,按照GPA降序排序。最后,我们使用reversed()
方法对GPA进行降序排序。
通过这种方式,我们可以按照多个条件对对象数组进行排序。在示例中,我们按照年龄升序排序,如果年龄相同则按照GPA降序排序。