为什么重写equals()方法和hashcode()方法
一、为什么重写hashcode()方法
1.hash算法
将一个特点的值转换成一串固定的数字,相同的值转换成的数字不会有变化
2.hashcode()原理
可以通过对象的内存地址、属性以及其他相关信息生成一个数值,通过这个值可以进行对象之间的比较。
3.运用场景
hash表、set集合等
4.为什么要重写
没有重写的hashcode直接通过对象的地址生产的一个数值,不足以满足我们写的对象之间的比较。例如学生对象,就可以通过学号这个唯一属性返回hashcode进行比较
二、为什么要同时重写equals()方法和hashcode()方法
hashcode相等的两个对象不一定相等。
两个相等的对象hashcode应该相等。
所以在重写equals方式时要满足他们的hashcode相等。

浙公网安备 33010602011771号