输入多个学生的成绩信息,包括:学号、姓名、成绩。 学号是每个学生的唯一识别号,互不相同。 姓名可能会存在重复。 要求:使用HashMap存储学生信息。 输入格式: 输入多个学生的成绩信息,每个学生的成绩信息格式:学号+英文空格+姓名+英文空格+成绩 以“end”为输入结束标志 输出格式: 按学号从大到小的顺序输出所有学生信息,每个学生信息的输出格式:学号+英文空格+姓名+英文空格+成绩,java实现
时间: 2024-03-15 08:46:38 浏览: 110
好的,请看下面的Java代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map<String, String[]> students = new HashMap<>();
// 输入学生信息
String input = scanner.nextLine();
while (!input.equals("end")) {
String[] info = input.split(" ");
String id = info[0];
String name = info[1];
String score = info[2];
students.put(id, new String[]{name, score});
input = scanner.nextLine();
}
// 排序学生信息
List<Map.Entry<String, String[]>> list = new ArrayList<>(students.entrySet());
Collections.sort(list, (o1, o2) -> o2.getKey().compareTo(o1.getKey()));
// 输出学生信息
for (Map.Entry<String, String[]> entry : list) {
String id = entry.getKey();
String name = entry.getValue()[0];
String score = entry.getValue()[1];
System.out.println(id + " " + name + " " + score);
}
}
}
```
使用Scanner读取输入,将学生信息保存在一个HashMap中,键为学号,值为一个包含姓名和成绩的String数组。然后使用Collections.sort()方法将Map中的Entry按照学号从大到小排序,并输出每个学生的信息。
阅读全文