hashcode重写注意事项_code关键字的作用

hashcode重写注意事项_code关键字的作用hashcode这个方法是用来鉴定2个对象是否相等的。那你会说,不是还有equals这个方法吗?不错,这2个方法都是用来判断2个对象是否相等的。但是他们是有区别的。一般来讲,equals这个方法是给用户调用的,如果你想判断2个对象是否相等,你可以重写equals方法,然后在代码中调用,就可以判断他们是否相等了。简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等。举…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

hashcode这个方法是用来鉴定2个对象是否相等的。
那你会说,不是还有equals这个方法吗?

不错,这2个方法都是用来判断2个对象是否相等的。但是他们是有区别的。

一般来讲,equals这个方法是给用户调用的,如果你想判断2个对象是否相等,你可以重写equals方法,然后在代码中调用,就可以判断他们是否相等了。简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等。举个例子,有个学生类,属性只有姓名和性别,那么我们可以认为只要姓名和性别相等,那么就说这2个对象是相等的。

hashcode方法一般用户不会去调用,比如在hashmap中,由于key是不可以重复的,他在判断key是不是重复的时候就判断了hashcode这个方法,而且也用到了equals方法。这里不可以重复是说equals和hashcode只要有一个不等就可以了!所以简单来讲,hashcode相当于是一个对象的编码,就好像文件中的md5,他和equals不同就在于他返回的是int型的,比较起来不直观。我们一般在覆盖equals的同时也要覆盖hashcode,让他们的逻辑一致。举个例子,还是刚刚的例子,如果姓名和性别相等就算2个对象相等的话,那么hashcode的方法也要返回姓名的hashcode值加上性别的hashcode值,这样从逻辑上,他们就一致了。

要从物理上判断2个对象是否相等,用==就可以了。

转载于:https://www.cnblogs.com/Ryan512/archive/2013/01/06/2848107.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196100.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月3日 下午4:43
下一篇 2025年10月3日 下午5:22


相关推荐

  • CAD拉伸的快捷命令_cad拉伸实体快捷键

    CAD拉伸的快捷命令_cad拉伸实体快捷键CAD快捷键在CAD绘图中是不可或缺的,刚入门CAD的小伙伴们一定要熟练掌握常用CAD快捷键命令的使用。那么CAD拉伸快捷键命令是什么呢?又该如何使用呢?下面小编就来给大家介绍一下浩辰CAD软件中CA

    2022年8月4日
    9
  • 30天自制操作系统之第13天 定时器(2)

    30天自制操作系统之第13天 定时器(2)

    2021年12月14日
    84
  • 自顶向下 | 带你遨游运输层

    自顶向下 | 带你遨游运输层

    2022年2月13日
    46
  • C语言里的延时函数

    C语言里的延时函数C 语言延时 nbsp 悬赏分 0 解决时间 2007 2 1814 48s 级的时间延时杂写啊 大侠们帮哈忙啊最佳答案在 Windows 下最简单的办法是调用系统函数 Sleep time 单位是 ms 在 windows h 中声明 注意大小写 不然就用中的函数获得当前时间 然后通过比较记录的时间和当前时间 决定作出的动作 不推荐用空循环 这样会占用 CPU 时间 关于 C 语言的一些时间函

    2026年3月17日
    2
  • SSE的学习

    SSE的学习看到intel向量化指令在矩阵乘应用中的评估_softee的专栏-CSDN博客中描述的效果而心动,然后咨询了下博客园博主,我稍微看了下《simdforc++developers》感觉SSE这些指令更像一种寄存器语言,乍一接触略不适应。然而我的疑问是:1、如果对一个步骤我用了TBB/MKL/CILK这种易操作的并行指令,内部能否再用SSE指令,能否性能进一步提升?或者像OMP一样不适合嵌套并行?2、这种向量化指令是否只对无依赖性流程可用?对dst(i)=src(i)+dst(i-1);…

    2025年6月17日
    7
  • 雷电模拟器opengl版本过低_tx模拟器安卓

    雷电模拟器opengl版本过低_tx模拟器安卓上图说明你的显卡暂不支持模拟器,遇到这个问题,主要是3种原因:1、你的电脑没有显卡解决方案:这个问题若不换电脑硬件是暂时无解的,只能等待我们模拟器支持集成显卡了2、你的电脑显卡确实不支持OpenGL2.0解决方案:这个问题只能通过更换显卡来解决了上图说明你的显卡暂不支持模拟器,遇到这个问题,主要是3种原因:1、你的电脑没有显卡解决方案:这个问题若不换电脑硬件是暂时无解的,只能等待我们模拟器…

    2022年10月8日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号