Java Comparator 接口实现笔记

后端 同时被 2 个专栏收录
2 篇文章 0 订阅
3 篇文章 0 订阅

Java 可以通过 Arrays.sort() 对数组进行排序,默认是升序排列,为了能够对数组进行降序排列,需要传入重写 compare() 方法的 Comparator 接口。

需要注意的是,接口接收的参数只能是引用数据类型,无法接收基本数据类型。所以需要新建引用类型数组然后将数组的值复制过去。

import java.util.Arrays;
import java.util.Comparator;

public class ComparatorTest {
    public static void main(String[] args) {
        int[] nums = {3, 4, 5, 1, 9, 10, 45, 93, 26};
        Arrays.sort(nums);
        // 默认升序排列
        System.out.println(Arrays.toString(nums));
        Integer[] nums1 = new Integer[nums.length];
        for(int i = 0; i < nums.length; i++)    nums1[i] = nums[i];
        // 重写 Comparator 接口的 compare 方法
        Arrays.sort(nums1, new Comparator<Integer>() {
            @Override
            public int compare(Integer a, Integer b) {
                // a 和 b,返回正数就交换位置,否则不交换位置
                return b - a;
            }
        });
        System.out.println(Arrays.toString(nums1));
        // lambda 表达式写法
        Arrays.sort(nums1, (a, b) -> {return a-b;});
        System.out.println(Arrays.toString(nums1));
    }
}

输出结果

[1, 3, 4, 5, 9, 10, 26, 45, 93]
[93, 45, 26, 10, 9, 5, 4, 3, 1]
[1, 3, 4, 5, 9, 10, 26, 45, 93]
  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值