JAVA 从键盘随机输入5个学生的姓名和成绩,并存入到map中进行排序
时间: 2024-11-09 22:27:03 浏览: 41
在Java中,你可以使用Scanner类获取用户的键盘输入,ArrayList存储姓名和成绩的对,然后通过Map(比如HashMap)将它们关联起来。由于Map本身并不支持直接的排序操作,所以需要先将Map的内容转换成List,再进行排序。以下是一个简单的示例:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建Scanner对象获取用户输入
Scanner scanner = new Scanner(System.in);
// 创建一个Map,键是学号,值是数组列表存储姓名和成绩
Map<Integer, List<String>> studentMap = new HashMap<>();
int totalStudents = 5;
for (int i = 0; i < totalStudents; i++) {
System.out.println("请输入第" + (i+1) + "位学生的信息(例如:张三 90)");
String name = scanner.next();
int score = scanner.nextInt();
// 存储姓名和成绩
studentMap.put(i+1, Arrays.asList(name, Integer.toString(score)));
}
// 转换Map内容为List并排序
List<Map.Entry<Integer, List<String>>> sortedEntries = studentMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toList());
// 打印排序后的结果
for (Map.Entry<Integer, List<String>> entry : sortedEntries) {
System.out.println("学生" + entry.getKey() + ": " + entry.getValue().get(0) + " 分数:" + entry.getValue().get(1));
}
scanner.close(); // 关闭Scanner
}
}
```
在这个例子中,我们首先读取学生的信息,然后将它们存储到Map中,接着使用Java 8的Stream API对Map的entrySet进行排序。最后,遍历排序后的结果并打印出来。
阅读全文