compareTo方法按照总分排序
时间: 2023-06-14 16:02:42 浏览: 101
假设你有一个Student类,其中有三个属性:姓名(name)、语文成绩(chineseScore)和数学成绩(mathScore)。你可以在Student类中实现Comparable接口,并重写compareTo方法,按照总分排序。具体实现代码如下:
```java
public class Student implements Comparable<Student> {
private String name;
private int chineseScore;
private int mathScore;
// 构造方法和getter/setter方法省略
// 重写compareTo方法,按照总分排序
@Override
public int compareTo(Student o) {
int totalScore = this.chineseScore + this.mathScore;
int oTotalScore = o.getChineseScore() + o.getMathScore();
return Integer.compare(oTotalScore, totalScore);
}
}
```
在该实现中,我们计算每个学生的总分,然后将其与其他学生的总分进行比较,返回一个整数值来指示它们的顺序。如果当前学生的总分比传入的学生的总分高,则返回一个正整数,表示当前学生排在传入的学生之前;如果当前学生的总分比传入的学生的总分低,则返回一个负整数,表示当前学生排在传入的学生之后;如果两个学生的总分相同,则返回0,表示它们的顺序相同。在使用Collections.sort()或Arrays.sort()等方法对学生列表进行排序时,将按照总分的降序进行排序。
阅读全文