利用HashSet集合实现学生信息的存储,要求学号相同则表示同一个学生。
时间: 2024-02-03 07:14:07 浏览: 21
可以利用Java中的HashSet集合来实现学生信息的存储,其中学号可以作为学生对象的唯一标识,如果学号相同则表示同一个学生。具体实现可以参考以下示例代码:
```java
import java.util.*;
public class Student {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return id == student.id;
}
@Override
public int hashCode() {
return Objects.hash(id);
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
public class Main {
public static void main(String[] args) {
Set<Student> set = new HashSet<>();
set.add(new Student(1001, "Alice"));
set.add(new Student(1002, "Bob"));
set.add(new Student(1003, "Charlie"));
set.add(new Student(1001, "David")); // 与Alice的学号相同,表示同一个学生
System.out.println(set); // 输出结果为:[Student{id=1001, name='Alice'}, Student{id=1002, name='Bob'}, Student{id=1003, name='Charlie'}]
}
}
```
在上述示例代码中,我们定义了一个学生类`Student`,其中包含学号和姓名两个属性,并重写了`equals()`和`hashCode()`方法,以便HashSet集合能够正确判断学生对象是否相同。在主函数中,我们利用HashSet集合存储了几个学生对象,并且可以看到学号为1001的学生被视为同一个学生,只输出了一次。