#Richard
/*案例:创建一个Student类,成员变量包含姓名,学号,成绩,然后进行实例化对象
将对象按照成绩由高到低排序,如果成绩相同,则按照学号进行排序,学号小的排在前面以此类推
*/
#代码实现:
import java.util.Arrays;
/**
- @author Richard
- @date 2019/7/1 0001-21:01
*/
public class TestScoreOrder {
public static void main(String[] args) {
Student1 p01=new Student1(“张三”,2,98);
Student1 p02=new Student1(“李四”,12,88);
Student1 p03=new Student1(“王五”,8,98);
Student1[] students={p01,p02,p03};
sort(students);
System.out.println(Arrays.toString(students));
}
public static void sort(Student1[] arr) {
for (int i=0;i<arr.length;i++){
for (int j=0;j<arr.length-1-i;j++){
if (arr[j].compareTo(arr[j+1])>0){
Student1 temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}
}
class Student1 implements Comparable{
public String name;
public int id;
public int score;
public Student1(String name, int id, int score) {
this.name = name;
this.id = id;
this.score = score;
}
public int compareTo(Student1 s){
if(this.score<s.score){
return 1;
}else if (this.score>s.score){
return -1;
}
else {
if(this.id<s.id){
return -1;
}else if (this.id>s.id){
return 1;
}
}
return 0;
}
public String toString(){
return "姓名:"+name+"" + " "+"学号:"+id;
}
}
运行结果: