题目描述
有一个学生类的结构如下:
class Student { private int no; private String name; private int score; public Student(int _no, String _name, int _score) { no = _no; name = _name; score = _score; } public int getNo() {return no;} public String getName() {return name;} public int getScore() {return score;} public void print(){ System.out.println(no + " “+name+” "+score); } }
请构造main函数完成如下功能: 从键盘中读入三个学生的信息,比较他们的成绩,按照成绩由高到低排列输出
输入描述:
三个学生的学号、姓名、成绩
输出描述: 由高到低排列输
出的三个学生信息
裁判测试程序样例:
/*你的代码被嵌在这里*/
class Student {
private int no;
private String name;
private int score;
public Student(int _no, String _name, int _score) {
no = _no;
name = _name;
score = _score;
}
public int getNo() {return no;}
public String getName() {return name;}
public int getScore() {return score;}
public void print(){
System.out.println(no + " "+name+" "+score);
}
}
输入样例:
在这里给出一组输入。例如:
1 wang 89
2 liu 78
3 ma 90
输出样例:
在这里给出相应的输出。例如:
3 ma 90
1 wang 89
2 liu 78
参考答案
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
final int N = 3; // 学生个数
Scanner cin = new Scanner(System.in);
Student[] stu = new Student[N];
for(int i = 0; i < N; i ++ ) {
stu[i] = new Student(cin.nextInt(), cin.next(), cin.nextInt());
}
Arrays.sort(stu, new Comparator<Student>( ) { // 使用 Comparator 建立以什么属性进行排序
@Override
public int compare(Student o1, Student o2) {
// TODO Auto-generated method stub
return o2.getScore() - o1.getScore();
}
});
for(int i = 0; i < N; i ++) {
stu[i].print();
}
}
}