自行选择升降序的实现

自行选择升降序的实现

若让用户自行选择升降序排序的话,是否只能靠Comparator()接口实现

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

        同学你好,Comparable是排序接口,若一个类实现了Comparable接口,就意味着“该类支持排序”。而Comparator是比较器!

http://img1.sycdn.imooc.com//climg/5d481a2f0001ead805700100.jpg

http://img1.sycdn.imooc.com//climg/5d481a3a0001473c04930237.jpg

而Comparator如下,是一个单独的类,作为比较器!

http://img1.sycdn.imooc.com//climg/5d481bee0001c11806130219.jpg

如上p1-p2就是分别返回负整数、零或正整数来确定比较的结果顺序,比较结果大于0,也就是把大的放后面了,反之p2-p1就是降序!

        如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小班 2019-08-05 18:07:03

        同学你好,不是只能通过Comparator接口来实现自定义排序!

         Comparable接口需要实现在类上,重写compare方法来排序!

         Comparator接口重写compare方法是可以对集合排序,Comparator可以单独写在一个类上,重写compareTo方法同样实现排序!

        Comparable接口可以作为实现类的默认排序算法,Comparator接口则用于一个类的扩展排序

        如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 黑不溜溜球 #1
    可以给一下代码展示么?我这里只有Comparator()实现升降序的两个类 public class AgeAscend implements Comparator<Cat>{ @Override public int compare(Cat o1, Cat o2) { //按年龄降序排序 int age1=o1.getMonth(); int age2=o2.getMonth(); return age1-age2; } } public class AgeDescend implements Comparator<Cat> { @Override public int compare(Cat o1, Cat o2) { //按年龄降序排序 int age1=o1.getMonth(); int age2=o2.getMonth(); return (age2-age1); } }
    2019-08-05 18:52:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师