当前位置: 首页 > news >正文

equals 和 hashCode 方法:使用它们的原因和位置,以及它们的工作原理

“现在我将告诉您一些同样有用的方法:  equals(Object o) 和 hashCode()。”

“您可能已经记得,在 Java 中,比较引用变量时不会比较对象本身,而是比较对对象的引用。”

代码解释
Integer i = new Integer(1); Integer j = new Integer(1); System.out.println(i==j);
i 不等于 j
变量指向不同的对象。
即使对象包含相同的数据。
Integer i = new Integer(1); Integer j = i; System.out.println(i==j);
我等于 j。这些变量包含对同一对象的引用。

“是的,我记得那个。”

平等 。_

“equals方法是这里的标准解决方案。equals方法的目的是通过比较对象内部存储的内容来确定对象内部是否相同。”

“它是怎么做到的?”

“这与 toString() 方法非常相似。”

Object 类有自己的 equals 方法实现,它只是比较引用:

public boolean equals(Object obj) { return (this == obj); }

“太好了……又回到那个时候了,是吗?”

“扬起你的下巴!这其实很棘手。”

“创建此方法是为了让开发人员可以在自己的类中覆盖它。毕竟,只有类的开发人员才知道比较时哪些数据是相关的,哪些不是。”

“你能举个例子吗?”

“当然。假设我们有一个表示数学分数的类。它看起来像这样:”

例子:

class Fraction { private int numerator; private int denominator; Fraction(int numerator, int denominator) { this.numerator = numerator; this.denominator = denominator; }public boolean equals(Object obj) { if (obj==null) return false; if (obj.getClass() != this.getClass() ) return false; Fraction other = (Fraction) obj; return this.numerator* other.denominator == this.denominat
http://www.jsqmd.com/news/984533/

相关文章:

  • El-Table 嵌套内容动态必填项校验
  • 小程序开发入门:从零掌握基础代码结构
  • G-Helper终极降压指南:AMD CPU温度直降15℃的完整实战教程
  • cat命令将调试信息指定到对应路径下
  • 华硕笔记本终极性能调校指南:5分钟掌握G-Helper完整配置
  • git diff 生成一部分文件的补丁
  • 逆水寒手游装备系统主要ui界面拆解
  • 单点ORACLE EBS 网页端
  • QT生成文件添加图标
  • c# 便签小程序
  • 马年本命年运势
  • 统信系统重置密码
  • 【软件发布】光明正大的看小说而不被发现的摸鱼软件:伪输入法(FakeType)
  • 【专题02】计算机网络面试题(40题),整理频率高,优质的面试题及答案
  • 编程是你最佳选择
  • PPDS生产计划排产-报工
  • 说这是新出的网剧海报
  • 仿照moba游戏账号主页的HTML代码。它采用移动端优先设计,模拟了游戏内个人主页的视觉风格,并展示了玩家信息、常用英雄和近期战绩等核心数据
  • 异地收单不用愁,H5 支付链接一键收款。
  • 计算机毕业设计之智能仓库管理系统开发与设计
  • GD32F470平台RT-thread-nano移植lwip-2.1.2(网卡CH182H2)
  • 4. Transformer_5_模型构建
  • 免费token请自取,主要是测试下系统bug情况
  • 第四周学习报告
  • 2026年6月上海崇明区黄金回收+白银回收+铂金回收龙头企业排名 正规品牌TOP3 - 沪上贵金属口碑推荐官
  • 1. 网络历史概述
  • MAC-UriComponentsBuilder扩展2
  • 语数英小纸条资料:小学各年级下册语文数学英语练习内容
  • three-bvh-csg 自动拉近 移动到屏幕中央
  • 上海松江区哪里回收黄金+回收白银+回收铂金价格高又靠谱?2026年6月实测 - 沪上贵金属口碑推荐官