Lambda入门--一篇就够了

转自:

 http://www.java265.com/JavaCourse/202206/3754.html

下文是笔者编写的一篇关于Lambda表达式入门的文章,当你阅读完这篇文章后,你就可以进入Lambda的大门了,如下所示

Lambda简介

Lambda表达式:
    是JDK8开始后的一种新语法形式

Lambda的功能:
     简化匿名内部类写法

Lambda语法格式
     (匿名内部类被重写方法的形参列表)->{
        被重写方法的方法体代码 
    }
    注:->是语法形式,无实际意义

注意事项:Lambda只能简化函数式编程接口的匿名内部类的写法
 

例:

@FunctionalInterface//加上这个注解必须是函数式接口,且只有一个抽象方法
interface User{
    void run();
}
//简化之前的匿名内部类
User p = new User(){
    @Override
    public void run(){
        System.out.println("我是java265.com");
    }
};
//简化之后
User p = () -> {
        System.out.println("我是java265.com");
};

另:也可以将其作为参数代入方法中去使用:

//在原来的基础上定义一个test方法
public static void test(User p){
    System.out.println("ttttttttt")
    p.run();
}
//不使用Lambda的情况下:
test(p);//需要在定义匿名内部类之后,将p代入;
//使用Lambda的情况:
User p = () -> {
        System.out.println("我是java265.com");
};
test(() -> {
        System.out.println("我是java265.com");
});
//由于等号右边即是User创建的对象p,因此可以可以直接将其代入
Lambda优点:
     Lambda是一个匿名函数
     可将Lambda表达式理解为是一段可以传递的代码

Lambda优点

//Lambda应用之前:
Arrays.sort(users,new Comparator<Integer>(){
    @Override
    public int compare(Integer o1,Integer o2){
        return o2 -o1;
}
});
//Lambda应用之后:
Arrays.sort(users,(Integer o1,Integer o2) -> {
        return o2 -o1;
});

Lambda表达式省略原则

 
Arrays.sort(users,(Integer o1,Integer o2) -> {
        return o2 -o1;
});
//省略参数类型之后
Arrays.sort(users,( o1, o2){
        return o2 -o1;
});


当只有一个参数,参数类型可以省略,同时()也可以省略
//简单引用一个单个参数的例子,不需要了解其具体含义
btn.addActionListener((ActionEvent e) -> {
    System.out.println("示例分享");
});
//简化之后:
btn.addActionListener( e -> {
    System.out.println("示例分享");
});

当Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号
//参照上一条规则的例子
btn.addActionListener( e -> {
    System.out.println("示例分享");
});
//简化之后:
btn.addActionListener( e -> System.out.println("示例分享") );


当Lambda表达式的方法体代码只有一行代码。可以省略大括号不写
当这行代码是return语句,必须省略return不写,同时也必须省略";"不写
//参照第一条规则的代码
Arrays.sort(users,(Integer o1,Integer o2) -> {
        return o2 -o1;
});
//简化之后:
Arrays.sort(users,( o1, o2)-> o2 -o1);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值