社区
Java SE
帖子详情
关于equals和hashCode方法的问题
yunjava
2004-05-03 01:40:22
重写equals就必须重写hashCode吗?
如果不是 一般hashCode都用在那些程序上?
...全文
138
2
打赏
收藏
关于equals和hashCode方法的问题
重写equals就必须重写hashCode吗? 如果不是 一般hashCode都用在那些程序上?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Hodex
2004-05-03
打赏
举报
回复
hashCode在Collection中要用到的
比如HashTable,HashMap
yunjava
2004-05-03
打赏
举报
回复
up
重写
equals
方法
的
hashcode
_Java
equals
和
hashCode
的这几个
问题
可以说明白吗?
前言上一篇文章 如何妙用 Spring 数据绑定? ,灵魂追问 环节留下了一个有关
equals
和
hashcode
问题
。基础面试经常会碰到与之相关的
问题
,这不是一个复杂的
问题
,但很多朋友都苦于说明他们二者的关系和约束,于是写本文做单独说明,本篇文章将循序渐进 ( 通过举例,让记忆与理解更轻松 ) 说明这些让你有些苦恼的
问题
,Let's go .......面试
问题
1. Java 里面有了 ...
错误的
hashcode
/
equals
方法
会出现什么
问题
?
一、
HashCode
简介 首先,我们看下载顶级父类Object如何解释
HashCode
()
方法
的: 我把解释单独拿出来: 总结为: hasdcode值具有一定的稳定性,多次调用返回结果要保持一致,并且是整数
equals
方法
执行结果和
hashcode
值的结果一致性要保持一致 不是必须的操作,但是重写可以提高hash表存储的性能(减少碰撞) 二、
hashcode
的作用 假设自定义一个User对象: package dream.on.sakura.entity; import lom..
重写
equals
() 时没有重写
hashCode
()
方法
的话,使用 HashMap 可能会出现什么
问题
。
如果在重写
equals
()
方法
后没有重写
hashCode
()
方法
,在使用 HashMap 时可能会出现诸多
问题
。首先,在查询元素时可能会出现查询不到元素的情况,即使使用的是正确的键。这是因为 HashMap 会根据键的哈希值来查找元素,若没有重写
hashCode
()
方法
,每个对象的哈希值都会不同,导致 HashMap 无法准确地找到对应的元素。
重写
equals
方法
时,没有重写
hashcode
方法
,导致了一些
问题
参考一篇写的非常清楚、简短的博客:参考博客
hashCode
和
equals
方法
的
问题
在项目中为了区分对象有时候需要覆盖
equals
方法
,此时也需要覆盖
hashCode
方法
;这里题外强调一下,如果
hashCode
相同,那么
equals
方法
未必一定会返回true,但是
equals
如果返回true,那么
hashCode
一定相同。
package com.test;
import org.apache.commons.lang.builder.
Equals
Builder;
import org.apache.commons.lang.bui
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章