Java中对象的比较(学习笔记)
2019-11-10 08:25:33来源:博客园 阅读 ()
Java中对象的比较(学习笔记)
1)详细说明对象的比较方式有哪些?
①对象引用的比较("= ="运算符)
"= ="是将对象的引用进行比较,实质是比较两个引用变量是否引用同一个对象。注意的点:字符串常量的比较时,JVM为同一个字符串常量只创建一个对象。
②对象内容的比较(equals()方法)
equals()方法是比较两个对象的实际内容是否相同。注意的点:从源码可知,equals()方法首先会做"= ="比较,只有当两个变量引用的是不同对象时才进行内容的比较,节省一定的资源。
③自定义对象的比较(java.util.Comparator接口和java.lang.Comparable接口)
A.java.util.Comparator接口:
保持自定义类不变化,在此之外编写一个比较算法(比较器类),它实现了Comparator接口。
Comparator接口定义了一个compare(T o1,T o2)方法:比较用来排序的两个参数。
/*@return o1小于、等于或者大于o2,分别返回负整数、零或者正整数。*/
此时,compare()方法的具体实现有了,再将Comparator传递给Collections.sort或Arrays.sort方法来实现排序。
B.java.lang.Comparable接口:
需要对自定义类进行改变,即实现Comparable接口,让它具有比较的功能。
Comparable接口定义了一个compareTo(T o)方法:比较此对象与指定对象的顺序。
/*@return 该对象小于、等于或者大于o,分别返回负整数、零或者正整数。*/
Comparable接口强行对实现它的每个类的对象进行整体排序,实现此接口的对象列表(和数组)可以通过Collection.sort或Arrays.sort进行自动排序。
例子可以观察,TreeSet构造函数中的TreeSet(Comparator<? super E> comparator)和TreeSet()。
2) 用一个生活中的对象来生动地说明Comparator和Comparable的区别。
在英语中,tor是常见的人称后缀,visi-tor(访问者),crea-tor(创造者)...个人认为Comparator就像是车险公司(第三方),重大的复杂的交通事故中保险公司要出人、出力去评估主要责任、次要责任等细则来划分保险金额。
而able在英语中,表示能力、能够。一个类实现了Comparable接口,代表着它被赋予了一种比较的能力。小型剐蹭事故中,两位车主私下协商、赔偿一下就完事儿了。
原文链接:https://www.cnblogs.com/1693977889zz/p/11829448.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Java虚拟机内存管理小结
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash