首页/新闻资讯/正文详情

Java 对象比较方式:equals、Comparable 与 Comparator

发布时间:2026/9/27 9:45:09 来源:云帆数科 栏目:资讯中心
Java 对象比较方式:equals、Comparable 与 Comparator
文章目录对象的比较1.覆写基类的 equals2.基于 Comparable 接口类的比较3.基于比较器比较三种方式的对比对象的比较我们就拿这个来举例publicclassCard{publicStringsuit;publicintrank;publicCard(Stringsuit,intrank){this.suitsuit;this.rankrank;}publicstaticvoidmain(String[]args){Cardcard1newCard(hongtao,5);Cardcard2newCard(heitao,5);}1.覆写基类的 equals当我们要判断两张牌是否相同时需要比较的内容是suit 以及 rank 两个属性。因此在比较是否相同上我们通常用进行比较而在两个实例化的 card 中则使用euqals方法。publicclassCard{publicStringsuit;publicintrank;publicCard(Stringsuit,intrank){this.suitsuit;this.rankrank;}// 比较牌面、花色是否相同Overridepublicbooleanequals(Objecto){if(onull||getClass()!o.getClass())returnfalse;Cardcard(Card)o;returnrankcard.rankObjects.equals(suit,card.suit);}OverridepublicinthashCode(){returnObjects.hash(suit,rank);}}重写 equals、hashCode 方法在 IDEA 上可以使用快捷键AltIns找到equals 和 hashCode默认下一步即可2.基于 Comparable 接口类的比较对用用户自定义类型如果要想按照大小与方式进行比较时在定义类时实现Comparable接口即可然后在类中重写compareTo方法。publicclassCardimplementsComparableCard{publicStringsuit;publicintrank;publicCard(Stringsuit,intrank){this.suitsuit;this.rankrank;}// 大小比较OverridepublicintcompareTo(Cardo){returnthis.rank-o.rank;}}因此我们在只比较牌面大小的时候可以通过重写compareTo方法即可。其 return 有两种写法returnthis.rank-o.rank;returnInteger.compare(this.rank,o.rank);// 更安全该方法的返回值含义有以下publicinterfaceComparableE{// 返回值:// 0: 表示 this 指向的对象小于 o 指向的对象// 0: 表示 this 指向的对象等于 o 指向的对象// 0: 表示 this 指向的对象大于 o 指向的对象intcompareTo(Eo);}3.基于比较器比较当用户自定义比较器的时候实现这个接口并重写 compare 方法例如在该例子中我想比较花色我们可以在 Card 类之外再创建一个类去实现该接口。减少对类的嵌入comapre 方法内如何比较可自定义classSuitComparatorimplementsComparatorCard{publicintcompare(Cardo1,Cardo2){returno1.suit.compareTo(o2.suit);}}注意Comparator 是 java.util 包中的泛型接口类使用时必须导入对应的包。该比较器的方法返回值如下publicinterfaceComparatorT{// 返回值:// 0: 表示 o1 指向的对象小于 o2 指向的对象// 0: 表示 o1 指向的对象等于 o2 指向的对象// 0: 表示 o1 指向的对象等于 o2 指向的对象intcompare(To1,To2);}三种方式的对比特性Object.equalsComparableComparator比较目的判断相等定义默认顺序定义多种/临时顺序比较结果booleanint (负, 0, 正)int (负, 0, 正)修改位置类内部类内部实现接口类外部独立比较器灵活性低中一种规则固定高多种规则切换典型方法a.equals(b)a.compareTo(b)c.compare(a, b)以上是我关于Java的笔记分享感谢你读到这里这也是我学习路上的一个小小记录。希望以后回头看时能看到自己的成长~

相关推荐

用手机监控AI编码代理:Agent of Empires Web仪表盘与PWA完整指南
用手机监控AI编码代理:Agent of Empires Web仪表盘与PWA完整指南

用手机监控AI编码代理:Agent of Empires Web仪表盘与PWA完整指南 【免费下载链接】agent-of-empires Manage multiple Claude Code, OpenCode agents from either TUI or Web for easy access on mobile. Also supports Mistral Vibe, Codex CLI, Gemini CLI, Pi.de… · 2026/9/27 9:45:03

Cortex AsyncAPI 自动扩缩容完全指南:从副本伸缩公式到实例与超量供应调优
Cortex AsyncAPI 自动扩缩容完全指南:从副本伸缩公式到实例与超量供应调优

后端云原生模型推理服务MLOps人工智能 【免费下载链接】cortex Production infrastructure for machine learning at scale 项目地址: https://gitcode.com/gh_mirrors/co/cortex 点击查看 免费下载 Cortex 会根据你的配置,以单个 AsyncAPI 为粒度自动扩… · 2026/9/27 9:44:50

谷歌视频搜索 API:/google/video/search 实战与 fallback 处理
谷歌视频搜索 API:/google/video/search 实战与 fallback 处理

找教程视频、盯竞品发了什么新片、看某个技术话题的视频供给变化,视频端点比网页搜索更直接。这篇讲三件事:端点路径(又是单数)、字段口径(title/link 必填、duration/time 全是可选),以及那个容易翻车的 fallback 行为——解析不到视频卡时,解析器会退化成 news 风格提取,你拿… · 2026/9/27 9:44:38

5557连接器选型与供应商评估:硬件工程师实战经验
5557连接器选型与供应商评估:硬件工程师实战经验

做硬件这么久,聊聊我怎么挑5557连接器供应商的做硬件研发这些年,手里经手的连接器少说也有上百种。要说哪个型号最常用,5557系列绝对排得进前三。不管是做家电控制板、电源适配器,还是工业控制、照明驱动,板对线连接基… · 2026/9/27 10:25:45

如何用ps做网站平面图速查手册
如何用ps做网站平面图速查手册

3招搞定PS做网站平面图,看清建站报价防坑 找建站公司最怕什么?不是技术烂,而是报价单像天书,几千块和几万块的差异你根本看不懂,生怕被坑高价。很多新手拿着模糊的“网站效果图”去谈 建站报价… · 2026/9/27 10:25:39

(论文速读)Unlocking ImageNet’s Multi-Object Nature:自动大规模多标签标注
(论文速读)Unlocking ImageNet’s Multi-Object Nature:自动大规模多标签标注

论文题目:Unlocking ImageNet’s Multi-Object Nature: Automated Large-Scale Multilabel Annotation(解锁ImageNet的多对象特性:自动大规模多标签标注) 会议:CVPR 2026 摘要:原始的ImageNet基准测试强制… · 2026/9/27 10:25:33

5个真实企业网站响应式案例拆解,附建站报价避坑指南
5个真实企业网站响应式案例拆解,附建站报价避坑指南

5个真实企业网站响应式案例拆解,附建站报价避坑指南 网站做好了没人访问,这比没做还让人心累。 很多老板盯着后台数据发呆,花了大几万做的站点,流量惨淡得像凌晨四点的服务器机房。这时候再回头问 建站报价… · 2026/9/27 10:25:33

(论文速读)TAP:一种无训练扩散加速的令牌自适应预测器框架
(论文速读)TAP:一种无训练扩散加速的令牌自适应预测器框架

论文题目:TAP: A Token-Adaptive Predictor Framework for Training-Free Diffusion Acceleration(TAP:一种无训练扩散加速的令牌自适应预测器框架)会议:CVPR2026摘要:扩散模型获得了很强的生成性能&#x… · 2026/9/27 10:25:33

《AI Engineering》10章砍到5章:一周能上线一个RAG应用的AI工程精读路线
《AI Engineering》10章砍到5章:一周能上线一个RAG应用的AI工程精读路线

《AI Engineering》10章砍到5章:一周能上线一个RAG应用的AI工程精读路线 【免费下载链接】aie-book [WIP] Resources for AI engineers. Also contains supporting materials for the book AI Engineering (Chip Huyen, 2025) 项目地址: https://gitcode.com/GitH… · 2026/9/27 10:25:27

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码