为什么使用HashMap的键存的是自定义的键时需要重写hashcode和equals方法?

发布时间 2023-08-21 19:54:38作者: zhanggangde

当hashMap的键存的是自定义的键时需要重写对象的hashcode和equals方法

   存入的是对象时,应该hashMapd的键不能存储的值不能相同,如果重写方法的hashcode()方法,他会默认调用object类的hashcode方法,但是

object的hashcode方法时地址值计算出来的hash值,并不是内容,这个时候就需要重写这个类的hashcode方法,但是hashcode计算出的值有可能回发生hash碰撞,这个时候就需要用equals去对比了,不重写equals方法的话默认调用的也是object的equals方法比较的是地址值,所以也需要重写equals方法

去比较内容是否相同。

如何重写hashcode和equals方法

可以在idea中快捷键Alt+insert键选中重写hashcode和equals方法