输入多个学生的成绩信息,包括:学号、姓名、成绩。 学号是每个学生的唯一识别号,互不相同。 姓名可能会存在重复。 使用HashMap存储学生信息,并实现根据学号的检索功能 输入格式: 输入多个学生的成绩
时间: 2024-10-27 11:07:30 浏览: 60
为了实现这个需求,我们可以创建一个包含学号(String)、姓名(String)和成绩(double)的Student对象。然后利用HashMap来存储这些学生信息,HashMap的键就是学号,值是Student对象。HashMap的特性使得它可以在常数时间内完成查找,非常适合用于这种快速检索的需求。
首先,我们定义一个Student类:
```java
public 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;
}
// getter和setter方法
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public double getScore() { return score; }
public void setScore(double score) { this.score = score; }
}
```
接着,我们创建一个HashMap来存储学生信息:
```java
import java.util.HashMap;
public class GradeBook {
private HashMap<String, Student> studentMap;
public GradeBook() {
studentMap = new HashMap<>();
}
// 添加学生信息
public void addStudent(Student student) {
studentMap.put(student.getId(), student);
}
// 根据学号查询成绩
public double getScoreByID(String id) {
if (studentMap.containsKey(id)) {
return studentMap.get(id).getScore();
} else {
return -1; // 如果找不到,返回默认值或抛异常
}
}
// 其他查询方法可以根据需要扩展
}
```
使用此GradeBook类,你可以输入学生的学号、姓名和成绩,添加到gradeBook中,然后通过学号获取对应的成绩。例如:
```java
public static void main(String[] args) {
GradeBook gradeBook = new GradeBook();
gradeBook.addStudent(new Student("001", "张三", 85.0));
gradeBook.addStudent(new Student("002", "李四", 90.0));
double score = gradeBook.getScoreByID("001"); // 查询张三的成绩
System.out.println(score); // 输出 85.0
}
```
阅读全文