当前位置: 首页 > 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

http://www.dtcms.com/a/130839.html

相关文章:

  • 如何使用阿里云邮件推送免费群发邮件
  • 基本命令题与答案
  • 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
  • MySQL 常见存储引擎全解析:InnoDB、MyISAM、Memory 等对比与实战
  • 随笔 20250413 Elasticsearch 的 term 查询
  • 【UE5 C++课程系列笔记】35——HTTP基础——HTTP客户端异步请求API接口并解析响应的JSON
  • 【redis进阶三】分布式系统之主从复制结构(1)
  • deepseek微调环境配置
  • 如何对大模型进行优化,以提高其性能和效率?
  • 【计网】网络交换技术之分组交换(复习自用,重要1)
  • go语言学习笔记:gin + gorm + mysql 用户增删改查案例入门
  • 【Spring Boot 过滤器】
  • 中断的硬件框架