2023/2/9 lambda表达式

lambda表达式用于简化匿名内部类的代码

1 代码示例
1.1 如果我们没有使用lambda表达式,直接书写匿名内部类将十分复杂,比如以下代码使用匿名内部类重写了Arrays中的排序方法(默认为从小到大顺序快速排序)
改写该方法,数据必须为引用类型,所以使用了泛型Integer
public class A01_MyArraysDemo2 {
    public static void main(String[] args) {
        //非默认方法排序,需要引用类型的数据
        Integer[] arr = {2, 3, 1, 5, 6, 7, 8, 4, 9};
        //o1表示无序队列元素,o2表示有序队列元素
        //返回值如果为正数或者0,表示当前要插入无序元素放在后面,反之则放在前面
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        });
        System.out.println(Arrays.toString(arr));
    }
}
1.2 使用了lambda表达式改写
1.2.1 使用条件:必须为函数式接口(有且仅有一个抽象方法的接口)
1.2.2 省略了很多内容,这些内容也并不是可以随便省略的,规则如下
1 new,类名,方法名,参数类型可以省略
2 如果只有一个参数,参数的小括号也可以省略
3 如果大括号里面的内容只有一行,那么return,大括号,分号也可以省略
public class A01_LambdaDemo1 {
    public static void main(String[] args) {
        String[] arr = {"a", "aaaa", "aaa", "aa"};
        Arrays.sort(arr, (o1, o2) -> o1.length() - o2.length());
        System.out.println(Arrays.toString(arr));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值