小蒜给出了班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。
输入格式
第一行为 n(0<n<20),表示班里的学生数目;
接下来的 n 行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过 20,成绩为一个不大于 100 的非负整数。
输出格式
把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。
输出时每行末尾的多余空格,不影响答案正确性
样例输入
4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28
样例输出
Joey 92
Hanmeimei 90
Kitty 80
Tim 28
import java.util.*;
/**
* @author 作者 E-mail: WYJ 1627407425@qq.com
* @version 创建时间:2019年4月29日 上午8:27:04
* 类说明
*/
class Student {
String name;
int score;
public Student(String name,int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String toString() {
return name+" "+score;
}
}
public class 成绩排序 {
public static void main(String[] args) {
List<Student> list = new ArrayList<Student>();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] name = new String[n];
int[] score = new int[n];
for(int i=0;i<n;i++) {
name[i] = sc.next();
score[i] = sc.nextInt();
list.add(new Student(name[i],score[i]));
}
//使用冒泡排序算法
for(int i=0;i<list.size()-1;i++){
for(int j=0;j<list.size()-1-i;j++){
if(list.get(j).getScore()>list.get(j+1).getScore()){
Student student=list.get(j);
list.set(j, list.get(j+1));
list.set(j+1, student);
}
}
}
for(int i=n-1;i>=0;i--) {
System.out.println(list.get(i));
}
}
}