对象值相等的比较
“==”和equals
p == q 表示的是 p 和 q 两个引用指向同一个对象
p.equals(q) 表示 p 指向的对象 和 q 指向的 对象是否是值语义相等的

equals如果没有手动重写,默认执行的就是Object版本中的equals。比较规则和“==”一样

结果

手动重写equals

运行结果

有了下面这个条件,则可以使
String str = null;
“hehe”.equals(str)不会出现空指针异常

大于、等于、小于的比较


使用Comparable接口的时候,最好指定泛型参数。编译器自动的完成类型效验工作,如果不写泛型参数,默认的comparaTo方法的参数类型就是Object类型。需要手动进行类型转换
对compareTo进行重写
使用Comparable的时候,你必须让要比较的类实现Comparable接口(需要修改这个类的代码)


结果

Comparator的使用
使用Comparator的时候,你是重新创建一个新的类实现Comparator接口,不需要修改待比较的代码


结果

equals 和 Comparable 是两个互不相干的东西

Comparable 与 Comparator 比较
使用Comparable的时候,你必须让要比较的类实现Comparable接口(需要修改这个类的代码)

直接让Card这个类实现Comparable接口

使用Comparator的时候,你是重新创建一个新的类实现Comparator接口,不需要修改待比较的代码

重新写了一个类,他的泛型参数是Card

覆写的方法
Object.equals :
因为所有类都是继承自 Object 的,所以直接覆写即可,不过只能比较相等与否
Comparable.compareTo:
需要手动实现接口,侵入性比较强,但一旦实现,每次用该类都有顺序,属于
内部顺序
Comparator.compare:
需要实现一个比较器对象,对待比较类的侵入性弱,但对算法代码实现侵入性

比较(==、equals、Comparable、Comparator)相关推荐

  1. Comparable Comparator的区别

    Comparable & Comparator接口都可以用来实现集合中元素的比较.排序,Comparator位于包java.util下, Comparable位于包java.lang下 Com ...

  2. Comparable+Comparator+Cloneable接口

    文章目录 Comparable Comparator Cloneable 浅拷贝 深拷贝 Comparable 当我们需要对一个自己写的类进行排序(Collections.sort和Arrays.so ...

  3. java常用类库---比较器(Comparable,Comparator)

    一,本章目标 掌握Comparable比较接口的使用 了解比较器的基本排序原理 掌握Comparator比较接口的使用 二,具体内容 Comparable接口: 之前在Arrays中存在sort方法, ...

  4. comparable, comparator

    阅读目录 一.Comparable简介 二.Comparator简介 三.Comparable和Comparator区别比较 回到顶部 一.Comparable简介 Comparable是排序接口.若 ...

  5. java comparable Comparator 区别

    Comparable与Comparator 都是用来实现集合中的排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序, ...

  6. JAVA两类比较器的区别(Comparable,Comparator)

    内部比较器Comparable 一个类实现了Comparable接口,那么它就有了一个内部比较器,实现了Comparable的类可以调用Collections工具类或Arrays的sort方法进行比较 ...

  7. Comparable Comparator

    Comparable与Comparator浅析_朱小厮的博客-CSDN博客_comparator与comparable Java 中 Comparable 和 Comparator 比较 - 如果天空 ...

  8. Comparable与Comparator的区别

    原文出处: MageShuai Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Compar ...

  9. java的Comparator和Comparable

    java的Comparator和Comparable 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序.      ...

  10. Comparable和Comparator接口是干什么的?列出它们的区别。

    ava提供了只包含一个compareTo()方法的Comparable接口.这个方法可以个给两个对象排序.具体来说,它返回负数,0,正数来表明已经存在的对象小于,等于,大于输入对象. Java提供了包 ...

最新文章

  1. visual studio 2005 新建C++空项目无法调试的解决方案
  2. select元素的options.add 与 insertbefore的区别
  3. boost::math::relative_difference相关用法的测试程序
  4. jstl中c:forEach的用法
  5. Anton Chuvakin:关于日志管理产品的十个注意事项
  6. axvspan函数--Matplotlib
  7. 原来我也可以写Android小游戏
  8. 【数据结构实验一】线性表
  9. 【托业】【新托业TOEIC新题型真题】学习笔记5-题库二-P7
  10. pom 备注_POM 500P的物性
  11. 与奥运会有关的常用英语术语及句子
  12. 浅谈 Web 3.0
  13. Oracle和SQL里面定义表别名
  14. 30M DEM数据处理成图
  15. AI × OCR:腾讯文档表格图像识别技术实践
  16. FlEAPHP + Smarty 进行php开发
  17. java-EasyExcel导出excel设置单元格为文本格式(含代码)
  18. 【邢不行|量化小讲堂系列47-实战篇】解密股票Level-2行情——高频交易的基础
  19. 《中国式斗争:一贴省你二十年》
  20. UR5 Gazebo仿真配置(不使用MoveIt)

热门文章

  1. 基于PaddleSpeech搭建个人语音听写服务
  2. 【NLG】(六)文本生成评价指标—— ROUGE原理及代码示例
  3. 证明:因为矩阵A非0,所以AA'也非零
  4. 《Spring揭秘》读书笔记 3:Spring MVC
  5. android nfc公交,安卓手机怎么刷公交、地铁 移动NFC手机交通业务介绍
  6. 蜂鸟E203软件环境的搭建(一)
  7. 计算机科学引论2021英文,计算机科学引论= Computer Science Illuminated : 第3版 : 英文...
  8. C语言关键字浅析-return
  9. 昭通计算机一级b考试试题及答案,2022云南昭通事业单位考试综合应用能力(B类)考试如何备考?...
  10. 【C】C语言函数中的变量(包括:作用域、存储类型)