请你说说hashCode()和equals()的区别,为什么重写equals()就要重写hashcod()

区块链毕设网qklbishe.com为您提供问题的解答

请你说说hashCode()和equals()的区别,为什么重写equals()就要重写hashcod()

得分点 hashCode()用途,equals()用途,hashCode()、equals()约定 标准回答 1、hashCode():获取哈希码,equals():比较两个对象是否相等。 2、二者两个约定:如果两个对象相等,它们必须有相同的哈希码;若两个对象的哈希码相同,他们却不一定相等。也就是说,equals()比较两个对象相等时hashCode()一定相等,hashCode()相等的两个对象equqls()不一定相等。 3、加分回答:由于hashCode()与equals()具有联动关系,equals()重写时,hashCode()进行重写,使得这两个方法始终满足相关的约定。
21:56
得分点: hashCode()用途,equals()用途,hashCode()、equals()约定 标准回答: (1) hashCode()方法的主要用途是获取哈希码,equals()主要用来比较两个对象是否相等。 (2)二者之间有两个约定,如果两个对象相等,它们必须有相同的哈希码;但如果两个对象的哈希码相同,他们却不一定相等。也就是说,equals()比较两个对象相等时hashCode()一定相等,hashCode()相等的两个对象equqls()不一定相等。 加分回答: (1) Object类提供的equals()方法默认是用==来进行比较的,也就是说只有两个对象是同一个对象时,才能返回相等的结果。 (2)实际的业务中,我们通常的需求是,若两个不同的对象它们的内容是相同的,就认为它们相等。 (3)鉴于上述情况,Object类中equals()方法的默认实现是没有实用价值的,所以通常都要重写。 (4)由于hashCode()与equals()具有联动关系,所以equals()方法重写时,通常也要将hashCode()进行重写,使得这两个方法始终满足相关的约定。
46:48

以上就是关于问题请你说说hashCode()和equals()的区别,为什么重写equals()就要重写hashcod()的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 请你说说hashCode()和equals()的区别,为什么重写equals()就要重写hashcod()