登山 Day3 - Arrays.sort()数组自定义排序

文章介绍了如何在Java中使用Comparator接口自定义数组排序规则。通过两种方式实现:一是创建匿名内部类并重写compare方法,二是使用lambda表达式简洁地定义比较规则。在这两种方法中,比较器返回值决定了元素的交换条件,实现升序或降序排列。
摘要由CSDN通过智能技术生成

static void sort(T[] a, Comparator<? super T> c)

  • 参数一是需要排序的数组,必须是对象数组
  • 参数二是返回值为int的比较器,大于0则交换,小于0不交换
  • 利用比较器来改变数组的排序规则

如何使用?

第一种方法

//这里只能用Integer来表示整数数组类型。它是int的包类 也就是super T(super在Java中是父类的意思);
Integer[] s = {1 , 3, 0, 3, 6, 2, 8, 4, 14, 11};
        Arrays.sort(s, new Comparator<Integer>() {
            @Override
            //在这里主要是重写了 Comparator类的compare方法,
            //sort方法可能也用了这个方法进行排序,然后在这里被重写了。
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;//当大于0就交换,否则不交换。
            }
        });

第二种方法

Integer[] s = {1 , 3, 0, 3, 6, 2, 8, 4, 14, 11};
Arrays.sort(s,(o1,o2) -> o2 - o1);//这里用的是匿名类的labmda表达式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值