新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/27 9:45:10来源:尧图网络
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的笔记分享感谢你读到这里这也是我学习路上的一个小小记录。希望以后回头看时能看到自己的成长~
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

unship - SKILL 2026/9/27 11:22:32

unship - SKILL

name: unship description: “Compare AI agent-made UI variants locally in a real app, then keep one and clean up unused temporary code.” category: development risk: critical source: community source_repo: mbenhard/unship source_type: community date_added: …

阅读更多 →
嵌入式偶发Bug排查实战:串口假故障、蓝牙断开与烧录失败的差分定位法 2026/9/27 11:22:04

嵌入式偶发Bug排查实战:串口假故障、蓝牙断开与烧录失败的差分定位法

干嵌入式这行,最怕的不是那种逻辑写错、一查就出的硬 bug,而是“偶尔出现、一测就好、一放就坏、换个环境又消失”的偶发问题。你蹲在板子面前守了半天,它稳如老狗;你刚把示波器探头收起来,它又当场表演。尤其串口通信…

阅读更多 →
搞懂如何运营一个网站完整流程,别在备案上栽跟头 2026/9/27 11:21:58

搞懂如何运营一个网站完整流程,别在备案上栽跟头

搞懂如何运营一个网站完整流程,别在备案上栽跟头 你是不是也遇到过这种情况?网站代码写完了,UI也调好了,满心欢喜准备上线,结果卡在备案环节。看着工信部的系统提示,心里直打鼓,流程一头雾水,不知道先填什么、后传什么,更怕填错资料被驳回,白白浪…

阅读更多 →
专业购物网站建设哪家好:避开5大坑的选型注意事项 2026/9/27 11:21:51

专业购物网站建设哪家好:避开5大坑的选型注意事项

专业购物网站建设哪家好:避开5大坑的选型注意事项 改个商品详情页的按钮颜色,建站公司拖了一周还没动静?这种憋屈事在电商圈太常见了。选对专业购物网站建设哪家好,核心不在看PPT多炫,而在吃透这些 注意事项…

阅读更多 →
可视化网站建设速查手册:零基础避坑与SEO实战 2026/9/27 11:21:51

可视化网站建设速查手册:零基础避坑与SEO实战

可视化网站建设速查手册:零基础避坑与SEO实战 自己不会代码想做网站,别慌。 这份可视化网站建设速查手册,专门救急。 3秒看清坑,7天上线站,不花冤枉钱。 一、 为什么你做的可视化网站没人看?…

阅读更多 →
凤岗网站仿做图解步骤:5步搞定高仿站 2026/9/27 11:21:51

凤岗网站仿做图解步骤:5步搞定高仿站

凤岗网站仿做图解步骤:5步搞定高仿站 模板网站太丑不够用,直接买模板又显得没档次。很多东莞凤岗的老板或者运营想搞个“凤岗网站仿做”,看着别家网站不错,就想照着做一套。但真动手才发现,改来改去全是坑。今天这篇【凤岗网站仿做】的【图解步骤】,就…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉