浅谈java中HashMap键的比较方式哈希娱乐
哈希游戏作为一种新兴的区块链应用,它巧妙地结合了加密技术与娱乐,为玩家提供了全新的体验。万达哈希平台凭借其独特的彩票玩法和创新的哈希算法,公平公正-方便快捷!万达哈希,哈希游戏平台,哈希娱乐,哈希游戏会发现2会把1覆盖,问题来了,明明是两个不同的对象,为什么,2会把1覆盖呢
可以发现我们传进来的键交给了一个hash的成员方法区处理,这里我们看看hash方法的源码
哦,看到这里明白了,我们传进来的键会执行hashCode方法,那么到这里我们明白了,原来,HashMap判断两个键是否相等是看他们的hashCode
这里发现是相等的,都是12344,所以我们可以很轻易的得出结论integer和integer1代表的是同一个键~,(这个结论是错的,继续往下看)
到这里还有一个问题,hashCode相等的两个对象他们的键一定是相同的吗
嗯怎么会这样我们定义的两个字符串明明hashCode值相同,按理来说,他们在HashMap中应该是同一个键才对,为什么会是两个不同的键
看到这里我们明白了,为什么name和name1hashCode值相同却是两个不同的键,因为他们进行equals比较的时候不同呀,name是通线是重地,equals方法不同,自然就是同的键,
至于我们一开始举的例子,integer和integer1,他们先进行了hashCode比较,相同后再进行,equals比较,再相同才判定他们是同一个键;
这也是我们为什么常常说,为什么重写equals还要重写hashcode,这两者缺一不可
到此这篇关于浅谈java中HashMap键的比较方式的文章就介绍到这了,更多相关java HashMap键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!