当前位置: 首页 > news >正文

hashcode() equals()

hashcode() & equals():

默认情况下:

hashcode方法是返回一个对象的hash值(int类型),利用对象地址生成一个int类型的数

equals方法是比较两个对象是否为同一个对象

从本质上来讲,两者是完全能没有什么关系的。但是在某些使用场景下,两者关系非常不一般。

比如说作为HashMapHashtable等散列表的key的时候,就是先比较key的hash值,相等再使用equals比较

 

而我们一般来说,对一些我们定制的类,我们是要去重写equals方法的,去让校验定制类实例的内容是否相等,而不是对我们没啥屌用的实例内存地址是否相等

而一旦我们重写equals方法后,我们在使用散列表时,就会出现一种情况:两个对象其实是相同的(内容),但是在hashcode()这一步就否决了,还没走到equals()

所以这是我们为什么说,重写equals()就要连同重写hashcode(),改写hashcode()逻辑就是:保证equals()返回true时,这两个对象的hashcode()也得是返回相同的int

相关文章:

  • 如何使用阿里云邮件推送免费群发邮件
  • 基本命令题与答案
  • 3 VS Code 配置优化与实用插件推荐:settings.json 详解、CodeGeeX 智能编程助手及插件离线安装方法
  • 企业经营决策风险
  • 在人工智能与计算机技术融合的框架下探索高中教育数字化教学模式的创新路径
  • 系统的安全及应用
  • 【数字电路】第四章 组合逻辑电路
  • 门极驱动器DRV8353M设计(二)
  • 问题 | 针对SSM(Spring + Spring MVC + MyBatis)框架的去Spring MVC强化版学习路线
  • 本地缓存方案Guava Cache
  • 《MySQL是怎样运行的》总结笔记
  • vue入门:template 和 JSX
  • jupyter4.4安装使用
  • 器件封装-2025.4.13
  • 【李宏毅深度学习——回归模型的PyTorch架构】Homework 1:COVID-19 Cases Prediction (Regression)
  • 【深拷贝、浅拷贝】golang函数参数传递,变量复制后,操作变量参数,是否影响原有数据?全面解析
  • 软件设计的核心:从模块化到内聚与耦合
  • dify部署,ollama部署,拉取模型,创建ai聊天应用
  • 神经特征的统计度量及AI拓展
  • uniapp转换markdown
  • 4月国产新能源,降价潮迈入拐点
  • 浙江省机电集团党委书记、董事长廉俊接受审查调查
  • 伊美第四轮核问题谈判开始
  • 浙江首个核酸药谷落子杭州,欢迎订阅《浪尖周报》第23期
  • 《瞭望》周刊社原总编辑、党委书记姬斌逝世,享年67岁
  • 当创业热土遇上年轻气息,上海南汇新城发展如何再发力?