对象数组 输入多个学生的学号,姓名,数学,语文,英语成绩,按总分从大到小排序。java
时间: 2024-10-29 15:15:24 浏览: 26
在Java中,你可以创建一个包含学生信息的对象数组,比如`Student`类,其中包含学号、姓名和各科成绩属性。首先,我们需要定义`Student`类:
```java
public class Student {
int studentId;
String name;
double mathScore;
double chineseScore;
double englishScore;
// 构造函数
public Student(int id, String name, double math, double chinese, double english) {
this.studentId = id;
this.name = name;
this.mathScore = math;
this.chineseScore = chinese;
this.englishScore = english;
}
// 计算总分
public double getTotalScore() {
return mathScore + chineseScore + englishScore;
}
}
```
接下来,我们可以创建一个`sortStudentsByTotalScore`方法来接受对象数组并按照总分排序:
```java
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
// 创建一个学生数组
Student[] students = {
new Student(1, "Tom", 85, 90, 92),
new Student(2, "Jerry", 90, 88, 86),
new Student(3, "Spike", 95, 94, 97)
};
// 按照总分降序排列
Arrays.sort(students, Comparator.comparing(Student::getTotalScore).reversed());
// 打印排序后的学生
for (Student s : students) {
System.out.println("学生ID: " + s.studentId + ", 姓名: " + s.name + ", 总分: " + s.getTotalScore());
}
}
}
```
在这个例子中,我们使用了`Arrays.sort`方法配合自定义的`Comparator`来比较学生的总分,并通过`reversed()`方法将结果按降序排列。
阅读全文