输入多个学生的成绩信息,包括:学号、姓名、成绩。 学号是每个学生的唯一识别号,互不相同。 姓名可能会存在重复。 使用HashMap存储学生信息,并实现根据学号的检索功能
时间: 2024-03-25 17:42:11 浏览: 93
用文件存储10个学生的姓名、学号、手机号、地址,可通过姓名或者学号查找
5星 · 资源好评率100%
好的,这是一个比较常见的Java面试题。我们可以定义一个Student类,包括学号、姓名、成绩三个属性,然后使用HashMap存储学生信息,以学号作为key,学生对象作为value。具体代码如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建HashMap存储学生信息
Map<String, Student> students = new HashMap<>();
// 输入多个学生的成绩信息
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生数量:");
int n = scanner.nextInt();
for (int i = 0; i < n; i++) {
System.out.print("请输入第" + (i+1) + "个学生的学号:");
String id = scanner.next();
System.out.print("请输入第" + (i+1) + "个学生的姓名:");
String name = scanner.next();
System.out.print("请输入第" + (i+1) + "个学生的成绩:");
double score = scanner.nextDouble();
Student student = new Student(id, name, score);
students.put(id, student);
}
// 根据学号检索学生信息
System.out.print("请输入要检索的学生的学号:");
String searchId = scanner.next();
Student student = students.get(searchId);
if (student != null) {
System.out.println("该学生的姓名为:" + student.getName());
System.out.println("该学生的成绩为:" + student.getScore());
} else {
System.out.println("未找到该学生!");
}
}
}
class Student {
private String id;
private String name;
private double score;
public Student(String id, String name, double score) {
this.id = id;
this.name = name;
this.score = score;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public double getScore() {
return score;
}
}
```
这里我们使用Scanner类从控制台输入学生信息,使用students.put(id, student)方法将学生信息存储到HashMap中,使用students.get(searchId)方法根据学号检索学生信息。
阅读全文