题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
import java.util.*; /** * 给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩 * <p> * 都按先录入排列在前的规则处理。 * <p> * 例示: * jack 70 * peter 96 * Tom 70 * smith 67 * <p> * 从高到低 成绩 * peter 96 * jack 70 * Tom 70 * smith 67 * <p> * 从低到高 * <p> * smith 67 * <p> * jack 70 * <p> * Tom 70 * peter 96 * <p> * 注:0代表从高到低,1代表从低到高 */ public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = Integer.parseInt(scanner.nextLine()); String symble = scanner.nextLine(); List<Student> lists=new ArrayList<Student>(); int number = 1; while (number <= sum) { String studentInfo = scanner.nextLine(); number++; String[] strArray=studentInfo.split(" "); Student student=new Student(); student.setName(strArray[0]); student.setRecord(Integer.parseInt(strArray[1])); lists.add(student); } //0从大到小 if ("0".equals(symble)) { Collections.sort(lists, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return o2.getRecord()-o1.getRecord(); } }); }else { Collections.sort(lists, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return o1.getRecord()-o2.getRecord(); } }); } for(Student student:lists) { System.out.println(student.getName()+" "+student.getRecord()); } } } class Student { String name; int record; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getRecord() { return record; } public void setRecord(int record) { this.record = record; } }