Lambda概述

1.Lambda表达式是JDk8开始后的一种新的语法形式;

2.作用:简化匿名内部类的代码写法;

3.Lambda表达式的简化格式:

(匿名内部类被重写方法的行参列表)->{

          被重写方法的方法代码

}

注:->是语法形式,无实际意义

注意:Lambda表达式只能简化函数试接口的匿名内部类的写法形式

4.什么是函数式接口:

1.首先必须是接口,其次接口中有且仅有一个抽象方法的形式。

2.通常我们会在接口上加上一个@FunctionalInterface

5.Lambda表达式的基本作用:

1. 简化函数式接口的匿名内部类的写法,如以下代码便是Lambda式最基础的使用;

//函数式接口
@FunctionalInterface//通常我们会在接口上加上函数式接口标识符
public interface Swimming {
    void swim();    //函数式接口只有一个抽象方法
}
//匿名类的使用
 public static void main(String[] args) {
        goSwimming(new Swimming() {
            @Override
            public void swim() {
                System.out.println("铁子 我们去游泳");
            }
        });
    }
    public static void goSwimming(Swimming swimming){
        swimming.swim();
    }
//匿名内部类的使用
public static void main(String[] args) {
        goSwimming(() -> {
            System.out.println("铁子,我们去游泳!!");
        });
    }
    public static void goSwimming(Swimming swimming) {
        swimming.swim();
    }

 6.Lambda表达式有什么前提:

1.必须是接口的匿名内部类,接口中只能有一个抽象方法;

7.Lambda的好处:

Lambda是一个匿名函数,我们可以吧Lambda的表达式理解为一段可以传递的代码,它可以写出更简洁,更灵活的代码,作为一种更紧凑的代码风格,使Java语言表达能力得到提升。

8.Lambda表达式省略规则:

1.如果方法中只有一个参数,哪么数据类型和小括号都可以省略;

2.如果方法中有多个参数,那么数据类型可以省略。

3.如果大括号只有一行代码,那么大括号,return,分号都可以省略(三个一起省略)

        Integer[] arr1 = {34, 12, 42, 23};
        Arrays.sort(arr1, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return 02 - 01;//降序
            }
        });
        //如果方法中有多个参数,那么数据类型可以省略。
        //如果大括号只有一行代码,那么大括号,return,分号都可以省略(三个一起省略)
        Arrays.sort(arr1, (o1, o2) ->
                02 - 01//降序
        );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值