《Java基础知识》Java Lambda表达式

本文介绍了Java Lambda表达式的基本语法和使用,包括其简洁的语法形式,接口的@FunctionalInterface注解,以及在实际应用中的示例,如简化代码、集合操作。同时提到了Lambda表达式的优缺点,如简化代码但不适合复杂操作,并指出在数据量小时性能可能较差。

接触Lambda表达式的时候,第一感觉就是,这个是啥?我居然看不懂,于是开始寻找资料,必须弄懂它。

先来看一个案例:

​
@FunctionalInterface
public interface MyLamda {
    void test1(String y);
}



​
 
​
import demo.knowledgepoints.Lambda.inf.MyLamda;

public class LambdaTest {
    public static void main(String[] args) {
        MyLamda m = (y) ->{ System.out.println("ss"+y);};
        m.test1("s");
    }
}



​

运行结果:


非Lambda方式:

​



import demo.knowledgepoints.Lambda.inf.MyLamda;

public class MyLamdaIml implements MyLamda {
    @Override
    public void test1(String y) {
        System.out.println("ss"+y);
    }

    public static void main(String[] args) {
        MyLamdaIml myLamdaIml = new MyLamdaIml();
        myLamdaIml.test1("s");
    }
}


​

运行结果:

对比一下这两种方式:明显感觉使用Lambda表达式的更加简洁,由Java8引入,让我们一起来看看Lambda表达式的优点和不足。

1. Lambda表达式 语法:() -> {}; 通过上述案例我们看出,这个语法,就是替代了一个实现类和实现类中方法。

() 里面y为入参,{} 为方法体,类名被隐藏,方法名被隐藏。

2. Lambda表达式,接口(MyLamda)只能有且只有一个抽象方法。同时通过注解@FunctionalInterface可以做到编译的时候校验抽象方法,

不满足要求,给出编译报错。

3. (y) 可以写成 (String y),  {}里面可以省略 return。并且当方法中只有一行代码时,{} 也可以省略  ;() 里面只有一个参数() 也可以省略,

最简写法 y -> System.out.println("ss"+y);

知道Lambda表达式的概念,就要结合实际情况来使用。

案例:Java的Runable接口 有注解@FunctionalInterface。

​



@FunctionalInterface
public interface Runnable {
    /**
     * When an object implementing interface <code>Runnable</code> is used
     * to create a thread, starting the thread causes the object's
     * <code>run</code> method to be called in that separately executing
     * thread.
     * <p>
     * The general con
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值