用java把三个成绩的总成绩排序_用java编一个学生成绩排序成绩 有学生的姓名 学号 三门课的成绩 然后对总分排序...
时间: 2024-03-21 11:38:16 浏览: 13
好的,以下是一个用Java编写的对学生成绩进行排序的示例程序:
```java
import java.util.Arrays;
import java.util.Comparator;
public class Student implements Comparable<Student> {
private String name;
private String id;
private int score1;
private int score2;
private int score3;
public Student(String name, String id, int score1, int score2, int score3) {
this.name = name;
this.id = id;
this.score1 = score1;
this.score2 = score2;
this.score3 = score3;
}
public int getSumScore() {
return score1 + score2 + score3;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
@Override
public int compareTo(Student o) {
return Integer.compare(getSumScore(), o.getSumScore());
}
public static void main(String[] args) {
Student[] students = new Student[]{
new Student("张三", "001", 80, 90, 70),
new Student("李四", "002", 90, 80, 70),
new Student("王五", "003", 70, 80, 90)
};
Arrays.sort(students, Comparator.reverseOrder());
for (Student student : students) {
System.out.printf("姓名:%s,学号:%s,总成绩:%d%n", student.getName(), student.getId(), student.getSumScore());
}
}
}
```
在这个示例程序中,我们定义了一个`Student`类,它包含每个学生的姓名、学号和三门课的成绩。我们通过实现`Comparable`接口来定义如何比较两个学生的总成绩,并通过`Arrays.sort()`方法来对学生数组进行排序。最后,我们将每个学生的姓名、学号和总成绩输出到控制台上。
在这个示例程序中,我们使用了`Arrays.sort()`方法来对学生数组进行排序,它需要一个`Comparator`对象来定义如何比较两个学生的总成绩。我们可以使用`Comparator.reverseOrder()`方法来获取一个逆序的比较器,这样我们就可以按照总成绩的降序排列学生数组了。
如果你想让学生数组按照其他方式排序,比如按照姓名、学号等属性排序,你可以实现一个对应的比较器,并将它传递给`Arrays.sort()`方法即可。