hashcode一样,内存地址应该也一样,那么说明是一样的对象或者变量,那为什么还要说,先判断hashcode是否一样,如果一样了,再去判断equal,用来确定不一样的结果
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
java中,哪种情况hashcode一样,但是equal却不一定相等
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
threenewbee 2016-04-01 17:03关注考虑一种极端情况,如果你的程序有多于2^32个对象,无论你的hash算法是什么,显然用int表示hashcode肯定有重复。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报
微信扫一扫点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
提交
- 2025-06-13 18:50allione的博客 总结了hashCode方法与equals方法重写的情况
- 2020-08-28 22:01Java中的`hashCode`方法是Java编程语言中的一个重要概念,它主要与对象的...反之,如果`hashCode`相同,`equals`不一定返回`true`,因为哈希冲突是可能存在的。理解并合理运用`hashCode`,可以极大地提高程序的性能。
- 2023-03-02 00:39Droit à la peau的博客 关于java中为什么重写equals就要重写hashcode
- 2024-09-10 11:51starrismq的博客 在 Java 中,`equals` 和 `hashCode` 方法密切相关,必须保持一致性:如果两个对象通过 `equals` 方法相等,它们的 `hashCode` 也必须相同。这对于基于哈希的数据结构(如 `HashMap`、`HashSet`)至关重要,因为这些...
- 2025-05-14 09:47扶风_w的博客 很多人以为 equals 和 hashCode 只是面试题,写法让 IDE 自动生成就行了。但它们其实深刻影响着 Java 集合的正确性和性能。本文通过典型案例、常见误区和项目实战,深入讲解 equals 与 hashCode 的工作机制与正确...
- 2024-10-22 20:07little_boy_lm的博客 哈希算法又称摘要算法,核心在于有一个hash函数,将...1、Java中默认hashcode()实现是基于Xorshift的伪随机数生成算法,受到当前线程有关的一个随机数+三个确定值影响,内容相同的对象,每次new对象,哈希值都不同。
- 2021-02-25 18:47恒大名宿王上源的博客 对象是放在堆中,栈中存放的对象的引用,所以==是对栈中的值进行比较,若返回true,代表变量的内存地址相等。2.2 equalequals是Object类中的方法,Object类的equals方法用于判断对象的内存地址引用是不是同一个地址...
- 2021-03-08 07:42杠杆游戏的博客 hashCode()方法和equals()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致。Equal没有重写的equal 使用是继承自 Object 的 equal 方法,和 “==” 的作用一样, 比较两个对象的内存地址是否相等。...
- 2020-04-01 13:13萌之兰的博客 equal 详解 目录 Java HashCode 和 equal 详解 1、概述 2、Object源码理解 3、需要重写equals()的场景 4、需要重写hashcode()的场景 5、原理分析 6、总结 1、概述 我们都知道,要比较两个对象是否相等时需要调用对象...
- 2022-12-10 15:15退无可退而立版的博客 == 和equals和hashcode之间的关系
- 2024-07-22 16:27空青726的博客 equals和hashCode方法是Java编程中非常重要的概念。记住,在重写equals方法时,必须满足自反性、对称性、传递性、一致性和与null的比较等条件;在重写hashCode方法时,必须满足一致性和高质量的哈希码等条件。同时,...
- 2025-02-11 18:19中东大鹅的博客 = 是用来比较两个对象的引用(内存地址)是否相同,对于基本数据类型比较的是值。equals() 方法是用来比较两个对象的内容是否相equals()同,通常在类中会重写该方法来判断内容的相等。
- 2021-03-08 06:00虞子宸的博客 首先提出这样一个问题:如果两个对象不相同,他们的hashCode值一定不相等吗?我们都知道equals和hashCode是Object中的方法,java中每一个对象都具有这两个方法。equals(Object obj):判断两个对象是否“相同”,返回...
- 2024-08-25 09:57Slingerspir的博客 在 Java 中,hashCode和equals方法是密切相关的,...:如果两个对象的hashCode方法返回相同的值,它们并不一定相等。也就是说,hashCode方法返回相同的值并不意味着equals方法返回true。这仅仅是一个充分不必要条件。
- 2020-11-11 17:36Zlase的博客 Java中经常会问这样的问题:为什么定义一个类,如果重写equal()就一定要重写hashCode()? 这个问题可以分成几步来看: 什么是equal? 什么是hashCode? 为什么要重写equal() ? 为什么要在重写完equal()之后...
- 2023-01-13 10:29包小志的博客 首先一个对象肯定有物理地址,在别的博文中会hashcode说成是代表对象的地址,这里肯定会让读者形成误区,对象的物理地址跟这个hashcode地址不一样,hashcode代表对象的地址说的是对象在hash表中的位置,物理地址说的...
- 2024-01-16 09:08无问287的博客 equals() 方法用于比较两个对象是否相等,而 hashCode() 方法用于获取对象的哈希码在 Java 中,如果两个对象通过 equals() 方法判断为相等,则它们的 hashCode() 方法必须返回相同的值。这是因为在使用哈希表(如 ...
- 没有解决我的问题, 去提问