用具体的java代码书写上述程序
时间: 2024-09-27 12:07:41 浏览: 30
当然,下面是使用Java编写上述程序的完整代码示例:
```java
import java.util.*;
public class StudentSorter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入班级学生人数:");
int numStudents = scanner.nextInt();
ArrayList<String[]> studentList = new ArrayList<>();
for (int i = 0; i < numStudents; i++) {
System.out.print("请输入学生姓名(空格分隔):");
String[] namesAndScores = scanner.nextLine().split(" ");
String name = namesAndScores[0];
int score = Integer.parseInt(namesAndScores[1]);
studentList.add(new String[]{name, Integer.toString(score)});
}
Collections.sort(studentList, (a, b) -> {
int scoreComparison = Integer.compare(Integer.parseInt(b[1]), Integer.parseInt(a[1]));
return scoreComparison == 0 ? Integer.compare(a[0].compareTo(b[0])) : scoreComparison;
});
for (String[] student : studentList) {
System.out.printf("%-15s%-5d%n", student[0], Integer.parseInt(student[1]));
}
scanner.close();
}
}
```
这个Java程序首先接收学生人数,然后通过Scanner读取每个学生的姓名和成绩,存放在ArrayList中。接着使用Collections.sort方法对列表进行排序,实现了成绩和输入次序的双重排序。最后,遍历并打印排序后的学生信息。
阅读全文