java数据结构使用哈希表创建一个学生信息 (学号、专业、名字、成绩),当输入学号时,要求查找到该学生所有信息。
时间: 2023-09-26 12:06:42 浏览: 55
### 回答1:
请看以下代码实现:
```java
import java.util.HashMap;
public class StudentInfo {
private static HashMap<String, String[]> studentMap = new HashMap<String, String[]>();
public static void main(String[] args) {
// 存储学生信息
String[] student1 = new String[]{"计算机科学", "张三", "90"};
String[] student2 = new String[]{"软件工程", "李四", "80"};
String[] student3 = new String[]{"数据科学", "王五", "95"};
studentMap.put("001", student1);
studentMap.put("002", student2);
studentMap.put("003", student3);
// 查找学生信息
search("001");
search("002");
search("003");
}
public static void search(String studentId) {
String[] student = studentMap.get(studentId);
if(student != null) {
System.out.println("学号:" + studentId + " 专业:" + student[0]
+ " 姓名:" + student[1] + " 成绩:" + student[2]);
} else {
System.out.println("没有找到学号为 " + studentId + " 的学生信息");
}
}
}
```
运行以上代码,输入学号即可查找到该学生的所有信息,如:
```
学号:001 专业:计算机科学 姓名:张三 成绩:90
学号:002 专业:软件工程 姓名:李四 成绩:80
学号:003 专业:数据科学 姓名:王五 成绩:95
```
### 回答2:
为了使用哈希表创建一个学生信息,我们可以使用Java中的HashMap类。首先,我们需要创建一个HashMap对象来存储学生信息。哈希表会使用学生的学号作为键,学生的专业、名字、成绩作为值进行存储。
首先,我们需要导入HashMap类所在的包:
import java.util.HashMap;
然后,我们可以创建一个HashMap对象来存储学生信息:
HashMap<String, String[]> studentInfo = new HashMap<String, String[]>();
其中,键的类型为String,即学生的学号,值的类型为String数组。String数组的每个元素分别存储学生的专业、名字、成绩。
接下来,我们可以向HashMap中添加学生信息。假设学生的学号为"0001",专业为"计算机科学",名字为"张三",成绩为"90",则可以使用put方法添加学生信息:
String[] infoArr = {"计算机科学", "张三", "90"};
studentInfo.put("0001", infoArr);
当需要查找学生信息时,只需输入学号,就可以找到对应学生的所有信息。假设我们需要查找学号为"0001"的学生信息,则可以使用get方法获取该学生的信息数组,并逐个输出学生的专业、名字和成绩:
String[] student1Info = studentInfo.get("0001");
System.out.println("学生专业:" + student1Info[0]);
System.out.println("学生名字:" + student1Info[1]);
System.out.println("学生成绩:" + student1Info[2]);
以上代码将输出如下结果:
学生专业:计算机科学
学生名字:张三
学生成绩:90
通过使用HashMap的哈希表数据结构,我们可以快速地根据学号查找到学生的所有信息,实现了高效的查找功能。
### 回答3:
要使用哈希表创建一个学生信息的数据结构,可以采用Java中的HashMap类。首先,我们创建一个HashMap对象,用于存储学生信息。HashMap的键是学号,值是一个包含专业、名字和成绩的学生信息对象。
在创建学生信息对象时,我们可以定义一个Student类,包含学号、专业、名字和成绩等属性,并提供相应的 getter 和 setter 方法。
当输入学号时,我们可以通过调用HashMap的get方法,并传入学号作为参数,来查找到该学生的所有信息。如果返回的值不为空,说明找到了对应的学生信息对象,可以通过调用该对象的相应 getter 方法,获取该学生的专业、名字和成绩等信息。
代码示例:
```java
import java.util.HashMap;
public class Student {
private String studentId;
private String major;
private String name;
private int score;
// 构造方法
public Student(String studentId, String major, String name, int score) {
this.studentId = studentId;
this.major = major;
this.name = name;
this.score = score;
}
// getter 和 setter 方法
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public static void main(String[] args) {
// 创建一个HashMap对象,用于存储学生信息
HashMap<String, Student> studentMap = new HashMap<>();
// 创建学生信息并加入哈希表
Student student1 = new Student("1001", "计算机科学", "张三", 90);
studentMap.put(student1.getStudentId(), student1);
Student student2 = new Student("1002", "英语", "李四", 85);
studentMap.put(student2.getStudentId(), student2);
// 输入学号,查找学生信息
String inputStudentId = "1001";
Student targetStudent = studentMap.get(inputStudentId);
if (targetStudent != null) {
System.out.println("找到该学生信息:");
System.out.println("学号:" + targetStudent.getStudentId());
System.out.println("专业:" + targetStudent.getMajor());
System.out.println("姓名:" + targetStudent.getName());
System.out.println("成绩:" + targetStudent.getScore());
} else {
System.out.println("未找到该学生信息。");
}
}
}
```
以上代码中,我们创建了一个HashMap对象来存储学生信息,通过调用get方法,并传入学号作为参数来获取学生信息对象。如果查找到对应的学生信息对象,则输出该学生的专业、名字和成绩等信息。如果未找到对应的学生信息对象,则输出未找到该学生信息。