2021.04.03
第40次记录
**代码演示:**
```java
public class Student {
private String name;
public Student(){
}
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/* public boolean equals(Object obj){
if (obj == null || !(obj instanceof Student)) return false;
if (obj == this) return true;
Student s = (Student)obj;
return this.name.equals(s.name);
}*/
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return name.equals(student.name);
}
public int hashCode() {
return name.hashCode();
}
}
```
```java
//注意:equals和hashCode必须同时生成。不用自己写,直接IDEA生成即可。
public class HashMapTest02 {
public static void main(String[] args) {
Student s1 = new Student("zhangsan");
Student s2 = new Student("zhangsan");
/* //重写equals方法之前是false
System.out.println(s1.equals(s2));*/
//重写equals方法之后是true
System.out.println(s1.equals(s2));
//重写hashCode之后
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
Set<Student> students = new HashSet<Student>();
students.add(s1);
students.add(s2);
System.out.println(students.size());
}
}
```
输出结果:
true
-1432604556
-1432604556
1
原文:https://www.cnblogs.com/wzd19901129/p/14614283.html