输入多个学生的成绩信息,包括:学号、姓名、成绩。 学号是每个学生的唯一识别号,互不相同。 姓名可能会存在重复。 要求:使用HashMap存储学生信息。 输入格式: 输入多个学生的成绩信息,每个学生的成绩信息格式:学号+英文空格+姓名+英文空格+成绩 以“end”为输入结束标志 输出格式: 按学号从大到小的顺序输出所有学生信息,每个学生信息的输出格式:学号+英文空格+姓名+英文空格+成绩
时间: 2024-01-22 20:03:53 浏览: 25
好的,以下是一个简单的Java程序实现:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class StudentScore {
public static void main(String[] args) {
HashMap<String, String[]> map = new HashMap<>();
Scanner scanner = new Scanner(System.in);
// 输入学生信息
String input = scanner.nextLine();
while (!input.equals("end")) {
String[] parts = input.split(" ");
String[] info = {parts[1], parts[2]};
map.put(parts[0], info);
input = scanner.nextLine();
}
// 按学号从大到小排序输出学生信息
TreeMap<String, String[]> sortedMap = new TreeMap<>((s1, s2) -> s2.compareTo(s1));
sortedMap.putAll(map);
for (Map.Entry<String, String[]> entry : sortedMap.entrySet()) {
String id = entry.getKey();
String[] info = entry.getValue();
System.out.println(id + " " + info[0] + " " + info[1]);
}
}
}
```
这个程序使用了HashMap存储学生信息,键为学号,值为包含姓名和成绩的字符串数组。首先使用Scanner从标准输入读取学生信息,每个学生信息以空格分隔,以"end"作为输入结束标志。然后使用TreeMap按学号从大到小排序输出学生信息,TreeMap是一种基于红黑树实现的有序的key-value集合。最后遍历排序后的Map,输出学生信息。