一、创建HashSet对象
public class Test1 {
public static void main(String[] args) {
HashSet<Student> set = new HashSet<Student>();
set.add(new Student("100"));
set.add(new Student("100"));
}
}
二、创建学生类
public class Student {
private String id;
public Student(String id) {
this.id = id;
}
@Override
public int hashCode() {
return id.hashCode();
}
}
此次学生类中重写了hashCode方法,使用id调用,也就是说当两个对象的id相同时,学生类中重写hashCode方法返回值相同。
三、分析add方法
与之前调用add方法时的情况类似:
先进入add方法中: