方法很简单
第一步:对象需要实现 Comparable
第二部:需要重写 compareTo方法
直接上代码
public class Student implements Comparable<Student> {
private String name;
private int score;
public Student(String name, int score){
this.name = name;
this.score = score;
}
// 定义Student的compareTo函数
// 如果分数相等,则按照名字的字母序排序
// 如果分数不等,则分数高的靠前
@Override
public int compareTo(Student that) {
if( this.score < that.score )
return -1;
else if( this.score > that.score )
return 1;
else // this.score == that.score
return this.name.compareTo(that.name);
}
// 定义Student实例的打印输出方式
@Override
public String toString() {
return "Student: " + this.name + " " + Integer.toString( this.score );
}
}
先按照学生的成绩 score进行排序,再按照名字进行排序
public static void main(String[] args) {
Student[] d = new Student[4];
d[0] = new Student("D",90);
d[1] = new Student("C",100);
d[2] = new Student("B",95);
d[3] = new Student("A",95);
SortEnum.SELECTSORT.sort(d);
for( int i = 0 ; i < d.length ; i ++ )
System.out.println(d[i]);
}
结果
![](https://img.haomeiwen.com/i2218464/bc49d7713a6a23a5.png)
网友评论