1) 编写学生类Student,成员变量包括姓名和成绩; 2) Student实现Comparable<E>接口; 3) 编写测试类,创建Student数组,数组长度为3,由用户输入3个学生的信息,调用java.util.Arrays的静态方法sort(),按照成绩进行排序,并输出学生的信息。
时间: 2024-02-17 14:01:22 浏览: 97
好的,我明白了你的问题。下面是对应的Java代码实现:
```
import java.util.Arrays;
import java.util.Scanner;
public class Student implements Comparable<Student> {
private String name;
private double score;
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public double getScore() {
return score;
}
@Override
public int compareTo(Student o) {
return Double.compare(this.score, o.score);
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", score=" + score +
'}';
}
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) + "个学生的成绩:");
double score = scanner.nextDouble();
students[i] = new Student(name, score);
}
Arrays.sort(students);
System.out.println("按照成绩排序后的学生信息:");
for (Student student : students) {
System.out.println(student.toString());
}
}
}
```
在这个代码中,我们首先定义了一个`Student`类,其中包含了两个成员变量:`name`和`score`,用于存储学生的姓名和成绩。我们还实现了`Comparable`接口,重写了`compareTo()`方法,用于指定按照成绩进行排序的规则。最后,我们编写了一个测试类,在其中创建了一个长度为3的`Student`数组,并由用户输入3个学生的信息。接着,调用`Arrays`类的静态方法`sort()`对学生数组进行排序,并输出排序后的学生信息。
请注意,为了使得排序后的结果更加美观,我们重写了`toString()`方法,用于返回一个包含学生姓名和成绩的字符串。
阅读全文