描述 |
|
---|---|
知识点 | 排序 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入多行,先输入要排序的人的个数,然后分别输入他们的名字和成绩,以一个空格隔开 用户名字,字符串,非空串,长度不超过20; 成绩,整数,范围【0,100】 输入排序方式,0或1,0表示成绩从高到低方式输出名字和成绩,1表示成绩从低到高方式输出名字和成绩
|
输出 | 按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开 |
样例输入 | 3 0 fang 90 yang 50 ning 70 |
样例输出 | fang 90 ning 70 yang 50 |
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
int t = scanner.nextInt();
Student[] students = new Student[n];
for (int i = 0; i < n; i++) {
String name = scanner.next().trim();
int score = scanner.nextInt();
students[i] = new Student(name, score);
}
sort(t, students);
StringBuilder builder = new StringBuilder();
for (Student s : students) {
builder.append(s.name).append(" ").append(s.score).append('\n');
}
System.out.print(builder.toString());
}
scanner.close();
}
private static void sort(int t, Main.Student[] students) {
if (t == 1) {
Arrays.sort(students, new Comparator<Student>() {
@Override
public int compare(Main.Student s, Main.Student t) {
return s.score - t.score;
}
});
} else if (t == 0) {
Arrays.sort(students, new Comparator<Student>() {
@Override
public int compare(Main.Student s, Main.Student t) {
return t.score - s.score;
}
});
}
}
private static class Student {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
}
}