题目描述:
输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。
例示:
jack 70
peter 96
Tom 70
smith 67
从高到低 成绩
peter 96
jack 70
Tom 70
smith 67
从低到高
smith 67
Tom 70
jack 70
peter 96
Java实现:
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int total = sc.nextInt();
int type = sc.nextInt();
Student[] scores = new Student[total];
for (int i = 0; i < total; i++) {
String name = sc.next();
int score = Integer.parseInt(sc.next());
scores[i] = new Student(name, score);
}
if (type == 0) {
//从大到小
Arrays.sort(scores, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o2.score - o1.score;
}
});
} else {
Arrays.sort(scores, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.score - o2.score;
}
});
}
for (Student s : scores) {
System.out.println(s.name + " " + s.score);
}
}
}
}
class Student {
String name = "";
int score = 0;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
}
知识点:
- Arrays.sort可以传入自定义对象的数组和比较器