编写学生类Student,包含学号、姓名和成绩三个成员变量,设计成绩比较器,实现Comparator接口。编写测试类,使用Arrays类的带两个参数的sort方法对一组学生按成绩降序排序。(提示:随机产生100个学生对象)
时间: 2024-01-22 12:21:31 浏览: 67
代码如下:
```
import java.util.Arrays;
import java.util.Comparator;
public class Student implements Comparator<Student>{
private int id;
private String name;
private int score;
public Student(int id, String name, int score) {
this.id = id;
this.name = name;
this.score = score;
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return this.score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public int compare(Student s1, Student s2) {
if(s1.getScore() < s2.getScore()) {
return 1;
}else if(s1.getScore() > s2.getScore()) {
return -1;
}else {
return 0;
}
}
public static void main(String[] args) {
Student[] students = new Student[100];
for(int i=0; i<students.length; i++) {
students[i] = new Student(i+1, "Student"+(i+1), (int)(Math.random()*101));
}
Arrays.sort(students, new Student());
for(Student s:students) {
System.out.println("ID: "+s.getId()+", Name: "+s.getName()+", Score: "+s.getScore());
}
}
}
```
该程序中,我们定义了一个学生类 `Student` ,包含学号、姓名和成绩三个成员变量,同时实现了 `Comparator` 接口中的 `compare` 方法,用来进行成绩的比较。在 `main` 方法中,我们随机生成了100个学生对象,并使用 `Arrays` 类中的 `sort()` 方法对这些学生对象按照成绩进行降序排序,最后输出排好序的学生信息。
阅读全文