java解法,主要用到Comparator接口
import java.util.*;
public class Main{
//先定义一个成绩表类
class grade_list{
public String name;
public int grade;
public grade_list(String name, int grade){
super();
this.name = name;
this.grade = grade;
}
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = Integer.parseInt(sc.nextLine());
int tmp = Integer.parseInt(sc.nextLine());
Set<String[]> str = new LinkedHashSet<>();//用链表保存输入的名字和分数因为同分时按输入的顺序排,所以用链表存储
List<grade_list> list = new ArrayList<>();//列表保存成绩单对象
for(int i=0; i<n; i++){
str.add(sc.nextLine().split(" "));//录入成绩
}
for(String[] arr:str){
String na = arr[0];
int g = Integer.parseInt(arr[1]);
list.add(new Main().new grade_list(na,g));
}
Collections.sort(list, new Comparator<grade_list>(){
@Override
public int compare(grade_list o1,grade_list o2){
if(tmp==0) return o2.grade - o1.grade;//当tmp=0时,分数按升序排
else return o1.grade - o2.grade;//当tmp=1时,分数按降序排
}
});
for(grade_list person:list){//遍历打印
System.out.println(person.name+ " "+person.grade);
}
}
}
}


京公网安备 11010502036488号