2、创建一个名为 Student 的类,其中包含学生姓名(name)、年纪(age)和成绩(score)属性。并通过使用Comparator<T>接口实现Student类可以按姓名、年龄、成绩等多种比较规则进行排序。
时间: 2024-10-24 11:13:42 浏览: 37
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
首先,我们创建一个名为`Student`的类,它将包含三个私有属性:姓名(name),年纪(age),以及成绩(score)。这里假设成绩是一个整数:
```java
public class Student {
private String name;
private int age;
private int score;
// 构造函数
public Student(String name, int age, int 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 int getScore() { return score; }
public void setScore(int score) { this.score = score; }
// 比较器接口的实现
@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()`方法来提供自定义的比较逻辑。现在你可以创建一个`List<Student>`并利用`Collections.sort()`或`Arrays.sort()`方法对其进行排序,根据名字、年龄或成绩进行。
阅读全文