比较(==、equals、Comparable、Comparator)
对象值相等的比较
“==”和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)相关推荐
- Comparable Comparator的区别
Comparable & Comparator接口都可以用来实现集合中元素的比较.排序,Comparator位于包java.util下, Comparable位于包java.lang下 Com ...
- Comparable+Comparator+Cloneable接口
文章目录 Comparable Comparator Cloneable 浅拷贝 深拷贝 Comparable 当我们需要对一个自己写的类进行排序(Collections.sort和Arrays.so ...
- java常用类库---比较器(Comparable,Comparator)
一,本章目标 掌握Comparable比较接口的使用 了解比较器的基本排序原理 掌握Comparator比较接口的使用 二,具体内容 Comparable接口: 之前在Arrays中存在sort方法, ...
- comparable, comparator
阅读目录 一.Comparable简介 二.Comparator简介 三.Comparable和Comparator区别比较 回到顶部 一.Comparable简介 Comparable是排序接口.若 ...
- java comparable Comparator 区别
Comparable与Comparator 都是用来实现集合中的排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序, ...
- JAVA两类比较器的区别(Comparable,Comparator)
内部比较器Comparable 一个类实现了Comparable接口,那么它就有了一个内部比较器,实现了Comparable的类可以调用Collections工具类或Arrays的sort方法进行比较 ...
- Comparable Comparator
Comparable与Comparator浅析_朱小厮的博客-CSDN博客_comparator与comparable Java 中 Comparable 和 Comparator 比较 - 如果天空 ...
- Comparable与Comparator的区别
原文出处: MageShuai Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Compar ...
- java的Comparator和Comparable
java的Comparator和Comparable 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. ...
- Comparable和Comparator接口是干什么的?列出它们的区别。
ava提供了只包含一个compareTo()方法的Comparable接口.这个方法可以个给两个对象排序.具体来说,它返回负数,0,正数来表明已经存在的对象小于,等于,大于输入对象. Java提供了包 ...
最新文章
- visual studio 2005 新建C++空项目无法调试的解决方案
- select元素的options.add 与 insertbefore的区别
- boost::math::relative_difference相关用法的测试程序
- jstl中c:forEach的用法
- Anton Chuvakin:关于日志管理产品的十个注意事项
- axvspan函数--Matplotlib
- 原来我也可以写Android小游戏
- 【数据结构实验一】线性表
- 【托业】【新托业TOEIC新题型真题】学习笔记5-题库二-P7
- pom 备注_POM 500P的物性
- 与奥运会有关的常用英语术语及句子
- 浅谈 Web 3.0
- Oracle和SQL里面定义表别名
- 30M DEM数据处理成图
- AI × OCR:腾讯文档表格图像识别技术实践
- FlEAPHP + Smarty 进行php开发
- java-EasyExcel导出excel设置单元格为文本格式(含代码)
- 【邢不行|量化小讲堂系列47-实战篇】解密股票Level-2行情——高频交易的基础
- 《中国式斗争:一贴省你二十年》
- UR5 Gazebo仿真配置(不使用MoveIt)
热门文章
- 基于PaddleSpeech搭建个人语音听写服务
- 【NLG】(六)文本生成评价指标—— ROUGE原理及代码示例
- 证明:因为矩阵A非0,所以AA'也非零
- 《Spring揭秘》读书笔记 3:Spring MVC
- android nfc公交,安卓手机怎么刷公交、地铁 移动NFC手机交通业务介绍
- 蜂鸟E203软件环境的搭建(一)
- 计算机科学引论2021英文,计算机科学引论= Computer Science Illuminated : 第3版 : 英文...
- C语言关键字浅析-return
- 昭通计算机一级b考试试题及答案,2022云南昭通事业单位考试综合应用能力(B类)考试如何备考?...
- 【C】C语言函数中的变量(包括:作用域、存储类型)