对于初学Java的小白们来说HashCode和equals方法重写是必须要掌握的,对于大量们来说一般的都是利用集成开发工具快捷生成,小编利用的是Eclipse,快捷生成按Alt+Shfit+S在勾选相应的选项即可!
代码模板
package com.jre.java.se;
import java.util.HashSet;
import java.util.Set;
public class HashCodetest {
public static void main(String [] agrs) {
Setset=new HashSet<>();
Student a=new Student(1,"jack");
Student b=new Student(1,"jack");
set.add(a);
set.add(b);
for(Student o:set) {
System.out.println(o);
}
//重写之后
System.out.println(a.hashCode());//3254659
System.out.println(b.hashCode());//3254659
}
}
class Student{
int id;
String name;
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + "]";
}
public Student(int id, String name) {
super();
this.id = id;
this.name = name;
}
//重写HashCode()方法
public int hashCode() {
final int prime =20;//定义一个定值
int result =1;//定义返回值初始值自己定
result=prime*result+id;//将对象的int类型属性值直接给返回值
result=prime*result+((null==name)?0:name.hashCode());
//如果对象的String类型属性是null给值0如果不是先调用String类的hashCode算法得到哈希值在把值给返回值
return result;
}
}
对于小白们可以自己敲一敲代码,不要开始就一键生成,可以先理解理解



