版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Comparable接口主要内容Comparable接口compareTo()方法的重写案例——可比较的Rectangle的子类
假设要设计一个求两个相同类型对象中较大者的通用方法。这里的对象可以是两个学生、两个日期、两个圆、两个矩形或者两个正方形。为了实现这个方法,这两个对象必须是可比较的。因此,这两个对象都该有的共同方法就是comparable(可比较的)。
为此,Java提供了Comparable接口。接口的定义如下所示:packagejava.lang;publicinterfaceComparable<E>{ publicintcompareTo(Eo);}compareTo方法判断一个对象相对于给定对象o的顺序,并且当这个对象小于、等于或大于给定对象o时,分别返回负整数、0或正整数。
从上边的定义可以看到,
Comparable接口是一个泛型接口。在实现该接口时,泛型类型E被替换成一种具体的类型。Java类库中的许多类实现了Comparable接口以定义对象的自然顺序。JavaAPI中可比较的类所有的数值封装类(Byte、Short、Integer、Long、Float、Double、BigDecimal等)、Character类、String类、Calendar类以及Date类都实现了Comaparable接口,compareTo方法在这些类中都能执行。数字、字符串、日期的比较1System.out.println(newInteger(3).compareTo(newInteger(5)));2System.out.println("ABC".compareTo("ABE"));3java.util.Datedate1=newjava.util.Date(2013,1,1);4java.util.Datedate2=newjava.util.Date(2012,1,1);5System.out.println(pareTo(date2));输出
:-1,-2,1sort()方法
由于所有Comparable对象都有compareTo方法,如果对象是Comparable接口类型的实例,
JavaAPI中的java.util.Arrays.sort(Object[])方法就可以使用compareTo方法来对数组中的对象进行比较和排序。sort()方法实例
下面程序清单给出了一个对字符串数组和Biglnteger对象数组进行排序的示例:
importjava.math.*;
publicclassSortComparableObjects{
publicstaticvoidmain(String[]args){
String[]cities={“Savannah”,“Boston”,“Atlanta”,Tampa“};java.util.Arrays.sort(cities);
for(Stringcity:cities)System.out.print(city+
“”);System.out.println();Biglnteger[]lNums={newBiglnteger(“
2323231092923992”),newBigInteger(“432232323239292”),newBigInteger(“54623239292“))};java.util.Arrays.sort(lNums);for(Biglntegernumber:lNums)System.out.print(number+””);}}运行结果:AtlantaBostonSavannahTampa546232392924322323232392922323231092923992下面程序会出现运行错误:
publicclassTest{ publicstaticvoidmain(String[]args){Fruit[]fruits={newFruit(2),newFruit(3),newFruit(1)};
java.util.Arrays.sort(fruits);//第4行出现运行时错误}
}classFruit{ privatedoubleweight; publicFruit(doubleweight){ this.weight=weight;} }
不能使用sort方法来对一个Fruit对象数组进行排序,因为Fruit类没有实现接口Comparable。
然而,可以修改Fruit类实现
Comparable接口。
classFruitimplementsComparable<Fruit>{ privatedoubleweight; publicFruit(doubleweight){ this.weight=weight;}©Override
publicintcompareTo(Fruito){
if(weight>o.weight)return1;
elseif(weight<o.wei
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024家居装饰设计与施工协议版B版
- 2024年再生资源回收与利用承包合同
- 2024年度地坪施工协议模板版
- 2024年国际劳务派遣协议范本版
- 2024年度企业员工计件薪酬合同书版
- 2024年光纤宽带网络建设与运营合同
- 第20课 第一次工业革命(学案)-【帮课堂】2023-2024学年九年级历史上册同步学与练(部编版)
- 2024年度业务推广兼职协议条款版B版
- 2024年全球互联网数据中心服务合同
- 2024年度化学品海运协议范本版B版
- 2024年贵州省贵阳修文县事业单位招聘133人历年管理单位遴选500模拟题附带答案详解
- 读书分享《非暴力沟通》课件(图文)
- 2024-2030年中国家禽饲养行业发展前景预测和投融资分析报告
- 2024-2030年中国净菜加工行业市场营销模式及投资规模分析报告
- 2024-2025学年广东省佛山市九年级(上)期中数学试卷(含答案)
- 湖南省长沙市雅礼教育集团2024-2025学年高一上学期期中考试数学试题 含解析
- 第二章 空气、物质的构成(选拔卷)(原卷版)
- 云南省昆明市昆十中教育集团2024-2025学年七年级上学期期中测试地理试卷(无答案)
- 管道安装高空作业安全施工方案
- 2024-2025学年度广东省春季高考英语模拟试卷(解析版) - 副本
- JJF1069-2012法定计量检定机构考核规范
评论
0/150
提交评论