写一个 java 代码看看:多因素排序
时间: 2024-09-22 14:09:55 浏览: 40
在 Java 中,我们可以编写一个多因素排序算法,例如对一组对象按照多个属性进行排序。这里以一个简单的例子展示如何使用匿名内部类和 `Comparator` 接口来实现多维度排序。假设我们有一个学生类 `Student`,包含姓名(name)和成绩(score)两个属性。
```java
import java.util.*;
class Student {
String name;
int score;
// 构造函数、getter 和 setter 省略
}
public class MultiFactorSortExample {
public static void main(String[] args) {
List<Student> students = Arrays.asList(
new Student("Alice", 85),
new Student("Bob", 90),
new Student("Charlie", 75),
new Student("David", 88)
);
Collections.sort(students, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int result1 = Integer.compare(s1.score, s2.score);
if (result1 == 0) { // 如果分数相同,按名字排序
return s1.name.compareTo(s2.name);
}
return result1; // 返回分数比较结果
}
});
for (Student student : students) {
System.out.println(student.getName() + ": " + student.getScore());
}
}
}
```
在这个代码中,我们首先创建了一个 `Student` 对象列表,然后使用 `Collections.sort()` 函数和自定义的 `Comparator` 进行排序。如果两个学生的分数相等,就会根据他们的名字进行比较。
阅读全文