news 2026/4/26 0:28:06

Java中的hashCode()和equals()

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java中的hashCode()和equals()

一、关于hashCode()

hashCode()是 Java 中Object类的一个原生方法,每个 Java 对象都默认继承了这个方法。它的核心作用是返回一个int 类型的哈希值(也叫散列码),这个值是根据对象的内存地址或内容计算出来的整数。hashCode()的存在主要是用于快捷查找,如Hashtable,HashMap等,hashCode()用来在散列存储结构中确定对象的存储地址。如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同。如果对象的equals方法被重写,那么对象的hashCode()方法也尽量重写,并且产生hashCode使用的对象,一定要和equals方法中使用的一致。两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不一定适用于equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,如Hashtable,他们“存放在同一个篮子里“。

重写了equals(),为什么还要重写hashCode()呢?

想想,你要在一个桶里找东西,你必须先要找到这个桶,重写hashcode()就是用来找到桶,光重写equals()没啥用。

二、关于equals()

2.1、equals和==

==用于比较引用和比较基本数据类型时具有不同的功能:

比较基本数据类型,如果两个值相同,则结果为true

比较引用时比较的是地址,如果引用指向内存中的同一对象,结果为true;

equals()方法实现对象的比较。由于==运算符不允许我们进行覆盖,也就是说它限制了我们的表达。因此我们复写equals()方法,达到比较对象内容是否相同的目的。而这些通过==运算符是做不到的。

2.2、object类的equals()方法的比较规则

如果两个对象的类型一致,并且内容一致,则返回true,这些类有:

java.io.file,java.util.Date, java.lang.string, 包装类(Integer,Double等)

String s1=new String("abc"); String s2=new String("abc"); System.out.println(s1==s2); System.out.println(s1.equals(s2)); 运行结果为false true
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 7:30:43

对比微PE官网工具集,AI时代更需要VoxCPM-1.5-TTS-WEB-UI这类智能模型

VoxCPM-1.5-TTS-WEB-UI:当AI开始“说话”,我们还需要微PE这类传统工具吗? 在一台老旧笔记本上运行着Windows XP系统的维修店里,老师傅熟练地插入U盘启动微PE工具箱,准备重装系统。他敲下几行命令,格式化分区…

作者头像 李华
网站建设 2026/4/25 5:48:14

VoxCPM-1.5-TTS-WEB-UI能否用于军事训练指令模拟?

VoxCPM-1.5-TTS-WEB-UI能否用于军事训练指令模拟? 在现代军事训练中,如何让士兵在接近实战的环境中快速反应、准确执行战术指令,一直是仿真系统设计的核心挑战。传统的语音指令依赖预先录制的音频片段——固定内容、缺乏变化、难以适配动态战…

作者头像 李华
网站建设 2026/4/22 9:07:57

Zed编辑器字体终极配置指南:5分钟提升代码阅读体验

Zed编辑器字体终极配置指南:5分钟提升代码阅读体验 【免费下载链接】zed Zed 是由 Atom 和 Tree-sitter 的创造者开发的一款高性能、多人协作代码编辑器。 项目地址: https://gitcode.com/GitHub_Trending/ze/zed 你是否经常在长时间编码后感到眼睛干涩疲劳&…

作者头像 李华
网站建设 2026/4/25 1:15:48

企业猫二开版php简易软件下载页,H5软件下载页APP下载页

源码介绍:给你们带来一个软件页面h5端有能力的可以二开美化等等,不会搭建的问我,文件里面有教程,自己看图把看了下,感觉该源码是待完成版本,一些功能还没完善,不过UI很漂亮修复了一些东西&#…

作者头像 李华
网站建设 2026/4/25 17:19:45

Git commit规范写多了?让VoxCPM-1.5-TTS-WEB-UI帮你朗读提交日志

Git commit规范写多了?让VoxCPM-1.5-TTS-WEB-UI帮你“听”代码 在程序员的日常里,git log 是再熟悉不过的存在。每当项目进入联调阶段,团队成员频繁提交、分支交错,终端里那一串串十六进制哈希和冷冰冰的 feat:、fix: 提交信息&am…

作者头像 李华
网站建设 2026/4/24 16:23:03

3步搞定DataEase部署:从零开始搭建企业级BI平台

3步搞定DataEase部署:从零开始搭建企业级BI平台 【免费下载链接】DataEase 人人可用的开源 BI 工具 项目地址: https://gitcode.com/feizhiyun/dataease 还在为商业BI软件的高昂费用和复杂部署而烦恼吗?DataEase作为一款开源的BI工具,…

作者头像 李华