- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
comparator和comparable
Comparator和Comparable比较
当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。
一、Comparator
强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort。
接口方法:
1??/**2???*?@return?o1小于、等于或大于o2,分别返回负整数、零或正整数。3???*/4??int?compare(Object?o1,?Object?o2);
案例:
?1import?java.util.Arrays;?2import?java.util.Comparator;?3?4public?class?SampleComparator?implements?Comparator?{?5?6??public?int?compare(Object?o1,?Object?o2)?{?7????return?toInt(o1)?-?toInt(o2);?8??}?910??private?int?toInt(Object?o)?{11????String?str?=?(String)?o;12????str?=?str.replaceAll(一,?1);13????str?=?str.replaceAll(二,?2);14????str?=?str.replaceAll(三,?3);15????return?Integer.parseInt(str);16??}1718??/**19???*?测试方法20???*/21??public?static?void?main(String[]?args)?{22????String[]?array?=?new?String[]?{?一二,?三,?二?};23????Arrays.sort(array,?new?SampleComparator());24????for?(int?i?=?0;?i??array.length;?i++)?{25??????System.out.println(array[i]);26????}27??}2829}
?二、Comparable
强行对实现它的每个类的对象进行整体排序,实现此接口的对象列表(和数组)可以通过Collections.sort或Arrays.sort进行自动排序。
接口方法:
1??/**2???*?@return?该对象小于、等于或大于指定对象o,分别返回负整数、零或正整数。?3???*/4??int?compareTo(Object?o);
假设对象User,需要按年龄排序:
?1public?class?User?{?2?3??private?String?id;?4??private?int?age;?5?6??public?User(String?id,?int?age)?{?7????this.id?=?id;?8????this.age?=?age;?9??}1011??public?int?getAge()?{12????return?age;13??}1415??public?void?setAge(int?age)?{16????this.age?=?age;17??}1819??public?String?getId()?{20????return?id;21??}2223??public?void?setId(String?id)?{24????this.id?=?id;25??}2627}
改造后的对象:
?1import?java.util.Arrays;?2?3public?class?User?implements?Comparable?{?4?5??private?String?id;?6??private?int?age;?7?8??public?User(String?id,?int?age)?{?9????this.id?=?id;10????this.age?=?age;11??}1213??public?int?getAge()?{14????return?age;15??}1617??public?void?setAge(int?age)?{18????this.age?=?age;19??}2021??public?String?getId()?{22????return?id;23??}2425??public?void?
您可能关注的文档
- 国际色标RAL.doc
- 人教版六年级阅读练习.doc
- 2014-2015-1第一次作文评讲.doc
- 英语中级听力16-24课答案.doc
- 某市英语招聘试题.doc
- 人文英语之外国人物.doc
- BEC商务英语写作绝对全.doc
- 神木中学高二年级英语导学案 选修七第五单元3.doc
- 两条生活的真理 Two Truths to Live By.doc
- 文学英语赏析复习提要.doc
- 护理学相关知识复习测试卷共三套.doc
- 护理学相关知识复习试题含答案(3套).doc
- 2025届高考语文复习:补写句子 课件.pptx
- 气压带和风带对气候的影响(第1课时)(教学设计).docx
- 气压带和风带对气候影响教学设计2024-2025学年高中地理人教版(2019)选择性必修1.docx
- 《故都的秋》课件 2024-2025学年统编版高中语文必修上册.pptx
- 《屈原列传》课件 2024-2025学年统编版高中语文选择性必修中册.pptx
- 《巫溪家乡文化》课件-2024-2025学年高一语文同步备课课件(统编版必修上册).pptx
- 《苏武传》课件 2023-2024学年统编版高中语文选择性必修中册.pptx
- 郑州中控ZKTime8.3 WEB考勤软件培训文档.pptx
最近下载
- 海淀区2024-2025学年第一学期期中高三英语试题及答案.pdf VIP
- 18.《我的白鸽》教案 2024-2025学年七年级语文上册寓教于乐大讲堂(统编2024版).docx VIP
- 乘法的初步认识说课稿.docx VIP
- 新媒体营销实务(第2版)全套教学课件.pptx
- 职能科室对医技科室医疗质量督查记录表(检验科、放射科、超声科、功能科、内镜室).pdf VIP
- 膝关节置换术后健康宣教.pptx
- 五(上)语文新版课课贴2024秋.pdf
- GA∕T 1105-2013- 信息安全技术 终端接入控制产品安全技术要求.pdf
- 广州数控GSK980TC3系列 编程及操作手册.pdf
- 道 法+认识生命(课件) 2024-2025学年七年级道德与法治上册(统编版2024).pptx VIP
文档评论(0)