Comparator:java自定义排序

本文介绍了如何使用Java的Comparator接口来实现自定义排序,讲解了sort()函数默认升序以及Comparator中compar()方法的规则。通过实例解析了如何编写代码以实现数组的降序排序,并提供了简略写法。了解这些知识,可以灵活地进行升序或降序排序,以及应对多条件排序场景。
摘要由CSDN通过智能技术生成

以下为个人学习心得:
问题在于在实现compartaor时该怎么写才是降序,该怎么写才是升序?

 int [] a={1,3,7,6,4,9};
 Arrays.sort(a, new Comparator<Integer>() { 
           public int compare(Integer o1, Integer o2) {
                     return o1-o2;//升序排序
                    //  return o2-o1;//降序排序
            }
  });

首先需要知道两个知识点:
(1).sort()函数默认从小到大排序
(2).comparator类的compar(T a,T b)方法需要重写,返回正数意味着传入的参数a>b;返回负数意味着a<b;返回0意味着a=b;

接下来就开始分析,最终目的是将数组降序排序。
如果在传入参数时实际上a<b,那么我们希望输出时是ba序列,由(1)可知b应该要“小于”a,也就是a>b,又由(2)可知既然要a>b,那么方法需要返回正数,即:

 public int compare(Integer o1, Integer o2) {
           if(a<b) return 1;
 }

同理,如果在传入参数时实际上a>b,那么我们希望输出时是ab序列,由(1)可知a应该要“小于”b,也就是a<b,又由(2)可知既然要a<b,方法需要返回负数,即&#

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值