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

6.hashcode与equals区别与联系

1.hashCode介绍

hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。

这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode() 定义在JDK的Object.java中,这就意味着Java中的任何类都包含有hashCode() 函数。

2.equals介绍

equals它的作用也是判断两个对象是否相等,如果对象重写了equals()方法,比较两个对象的内容是否相等;如果没有重写,比较两个对象的地址是否相同,价于“==”。

同样的,equals()定义在JDK的Object.java中,这就意味着Java中的任何类都包含有equals()函数。

3.hashcode相等的equals不一定相等
但是equals相等的hashcode一定相等

至于为啥这样,解释下:

因为是按照hashCode来访问小内存块,所以hashCode必须相等。

HashMap获取一个对象是比较key的hashCode相等和equals为true。

之所以hashCode相等,却可以equal不等,就比如ObjectA和ObjectB他们都有属性name,那么hashCode都以name计算,所以hashCode一样,但是两个对象属于不同类型,所以equals为false。


http://www.kler.cn/a/16017.html

相关文章:

  • WSL与Ubuntu系统--使用Linux
  • vue2/vue3中使用的富文本编辑器vue-quill
  • 使用 npm 安装 Yarn
  • 什么是项目完整性管理?
  • 使用热冻结数据层生命周期优化在 Elastic Cloud 中存储日志的成本
  • 游戏引擎学习第10天
  • 产业数字化爆发,松山湖开发者村打通数实融合“最后一公里”
  • 【地铁上的设计模式】--结构型模式:组合模式
  • 2023五一数学建模B题完整思路
  • 深入探究C++中的仿函数和迭代器——提升你的STL技能
  • SDKJ_JD 服务器部署
  • 解决Windows下QtCreator编译代码时错误:cc1plus.exe: out of memory allocating 65536 bytes
  • MCAL知识点(二十四):WDG MCAL驱动配置详解
  • 《统计学习方法》——EM算法及其推广(上)
  • 第四十二章 管理镜像 - 监控镜像
  • (八)Geoprocessing地理处理框架——基本介绍
  • GPT-4 API 接入之旅
  • react native ios 添加启动页 xcode14 react-native-splash-screen
  • 【机器学习】HOG+SVM实现行人检测
  • leetcode-024-两两交换链表中的节点
  • 【Java笔试强训 1】
  • 使用BP神经网络和Elman Net预测航班价格(Matlab代码实现)
  • 薪资17K是一个怎样的水平?来看看98年测试工程师的面试全过程…
  • 利用层级式一致性加强进行半监督病理图像分割
  • windows安装flutter
  • 【JavaEE进阶】——第四节.Spring更简单的实现Bean对象的存取(利用注解储存和注入Bean对象)