java Arrays.sort lambda排序

Arrays.sort主要用于数组排序,可以是常量型,object型,自定义class型。

举个例子,

int[] a = new int[]{3, 1, 2};
Arrays.sort(a);

这个是一维数组排序。

比如有个String数组,想按每个String的长度排序

String[] a = new String[]{'aa', 'bbbb', 'c'};

想排成这样的结果:‘c’, ‘aa’, ‘bbbb’

那么需要自定义一个比较器,这里用简洁的lambda表达式,
因为每个元素取出来的时候会判断是String类型,所以不需要显式写出来。

String[] a = new String[]{'aa', 'bbbb', 'c'};
//Arrays.sort(a, (String a, String b) ->(a.length() - b.length())); is also OK
Arrays.sort(a, (a, b) ->(a.length() - b.length()));

上面的lambda表达式中(a, b)也可以用其他字母,比如(x,y), (m,n)等等。

再比如二维数组,想按第一个元素的大小排序
同样的,每个元素取出来会判断是int[ ], 所以不需要显示指定。

int[] a = new int[][]{{1,2}, {2, 3}, {-1, 0}};
//Arrays.sort(a, (int[] a, int[] b) -> (a[0] - b[0])); is also OK
Arrays.sort(a, (a, b) -> (a[0] - b[0]));

上面的lambda表达式中(a, b)也可以用其他字母,比如(x,y), (m,n)等等。

如果想逆序排序,只需要把a[0] - b[0] 换成 b[0] - a[0]

int[] a = new int[][]{{1,2}, {2, 3}, {-1, 0}};
//Arrays.sort(a, (int[] a, int[] b) -> (b[0] - a[0])); is also OK
Arrays.sort(a, (a, b) -> (b[0] - a[0]));
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值