为什么重写equals()方法和hashcode()方法

一、为什么重写hashcode()方法

  1.hash算法

  将一个特点的值转换成一串固定的数字,相同的值转换成的数字不会有变化

  2.hashcode()原理 

  可以通过对象的内存地址、属性以及其他相关信息生成一个数值,通过这个值可以进行对象之间的比较。

  3.运用场景

  hash表、set集合等

  4.为什么要重写

  没有重写的hashcode直接通过对象的地址生产的一个数值,不足以满足我们写的对象之间的比较。例如学生对象,就可以通过学号这个唯一属性返回hashcode进行比较

二、为什么要同时重写equals()方法和hashcode()方法

  hashcode相等的两个对象不一定相等。

  两个相等的对象hashcode应该相等。

  所以在重写equals方式时要满足他们的hashcode相等。

 

posted @ 2022-01-02 00:13  骑着上帝去流浪t  阅读(47)  评论(0)    收藏  举报