题解 | #成绩排序#
成绩排序
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;
}
}