1) 编写学生类Student,成员变量包括姓名和成绩; 2) Student实现Comparable<E>接口; 3) 编写测试类,创建Student数组,数组长度为3,由用户输入3个学生的信息,调用java.util.Arrays的静态方法sort(),按照成绩进行排序,并输出学生的信息。
时间: 2024-02-17 21:00:59 浏览: 27
好的,我理解了你的问题,下面是代码实现:
首先是 `Student` 类的实现:
```java
public class Student implements Comparable<Student> {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
// 实现 compareTo 方法,按照成绩从高到低排序
@Override
public int compareTo(Student o) {
return o.score - this.score;
}
// 重写 toString 方法,方便输出学生信息
@Override
public String toString() {
return "姓名:" + name + ",成绩:" + score;
}
}
```
然后是测试类的实现:
```java
import java.util.Arrays;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Student[] students = new Student[3];
for (int i = 0; i < students.length; i++) {
System.out.print("请输入第" + (i+1) + "个学生的姓名:");
String name = scanner.next();
System.out.print("请输入第" + (i+1) + "个学生的成绩:");
int score = scanner.nextInt();
students[i] = new Student(name, score);
}
Arrays.sort(students); // 使用 Arrays.sort() 方法进行排序
System.out.println("按照成绩从高到低排序后的学生信息如下:");
for (Student student : students) {
System.out.println(student);
}
}
}
```
运行结果如下:
```
请输入第1个学生的姓名:张三
请输入第1个学生的成绩:85
请输入第2个学生的姓名:李四
请输入第2个学生的成绩:92
请输入第3个学生的姓名:王五
请输入第3个学生的成绩:78
按照成绩从高到低排序后的学生信息如下:
姓名:李四,成绩:92
姓名:张三,成绩:85
姓名:王五,成绩:78
```