Java详细代码创建一个学生类,每个学生有学号、姓名、年龄信息,输入5个学生信息,输出去重后的3个学生信息。重写学生类的eqauls、hashCode函数,使用HashSet去重
时间: 2024-03-25 17:42:04 浏览: 63
java学生信息管理系统源代码
好的,下面是Java代码:
```java
import java.util.HashSet;
public class Student {
private String id; // 学号
private String name; // 姓名
private int age; // 年龄
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
// 重写equals方法
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Student student = (Student) obj;
return id.equals(student.id) && name.equals(student.name) && age == student.age;
}
// 重写hashCode方法
@Override
public int hashCode() {
int result = id.hashCode();
result = 31 * result + name.hashCode();
result = 31 * result + age;
return result;
}
public static void main(String[] args) {
HashSet<Student> set = new HashSet<>();
set.add(new Student("20210001", "张三", 18));
set.add(new Student("20210002", "李四", 19));
set.add(new Student("20210003", "王五", 20));
set.add(new Student("20210001", "张三", 18)); // 重复的学生信息
set.add(new Student("20210004", "赵六", 21));
set.add(new Student("20210002", "李四", 19)); // 重复的学生信息
// 去重后的学生信息
System.out.println("去重后的学生信息:");
for (Student student : set) {
System.out.println(student.id + "\t" + student.name + "\t" + student.age);
}
}
}
```
以上代码创建了一个学生类,重写了equals方法和hashCode方法,使用HashSet去重学生信息。在main方法中,我们创建了5个学生信息,其中有两个学生信息是重复的。最后输出去重后的3个学生信息。
阅读全文