创建一个名为 Student 的类,其中包含学生姓名(name)、年纪(age)和成绩(score)属性。并通过使用Comparator<T>接口实现Student类可以按姓名、年龄、成绩等多种比较规则进行排序。
时间: 2024-10-24 18:12:33 浏览: 34
创建一个名为`Student`的类,首先需要包含学生的姓名(name),年纪(age),以及成绩(score)等基本属性。这是一个简单的Java类示例:
```java
import java.util.Comparator;
public class Student {
private String name;
private int age;
private double score;
// 构造函数
public Student(String name, int age, double score) {
this.name = name;
this.age = age;
this.score = score;
}
// 获取和设置属性的方法
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public double getScore() { return score; }
public void setScore(double score) { this.score = score; }
// 使用Comparator<T>实现排序
@Override
public int compareTo(Student other) {
if (this.score > other.score) return 1; // 按分数降序
else if (this.score < other.score) return -1; // 按分数升序
else {
if (this.age > other.age) return 1; // 按年龄降序
else if (this.age < other.age) return -1; // 按年龄升序
else return this.name.compareTo(other.name); // 按姓名字母顺序
}
}
}
```
在这个`Student`类中,我们实现了`Comparable<Student>`接口,并覆盖了`compareTo`方法,用于自定义按照姓名、年龄和成绩排序的方式。如果你想让这个类支持多种比较规则,可以在外部通过传入不同的Comparator实例来改变排序策略。
阅读全文