- 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?
您可能关注的文档
最近下载
- 管理学-PPT课件(全).pptx
- 高峰数字(四)_原创精品文档.pdf VIP
- “深圳工匠杯”深圳市第十四届职工技术创新运动会暨2024年深圳技能大赛碳排放管理员技能竞赛理论题库及答案(300题).docx VIP
- 粉针剂包装技术与设备.pptx
- 全文解读新修订的2021《中国共产党统一战线工作条例》ppt精品.pptx VIP
- 白蚁防治服务合同协议书范本.docx VIP
- (2022年新版)义务教育初中英语课程标准详细解读 (新课标解读讲座培训课件).pptx VIP
- 湖南《住宅工程质量常见问题防治技术规程》.docx
- 葡萄酿酒有限公司生产安全事故应急预案.docx VIP
- 路基爆破设计及施工组织方案.doc
文档评论(0)