Lamda Expression

Posted djh222

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lamda Expression相关的知识,希望对你有一定的参考价值。

Lambda表达式又被成为闭包或者匿名函数(闭包的概念主要出自于函数式编程)。

在Java中,我们可以将Lambda表达式看作是任意函数式接口类型的一个匿名实例。Java Lambda表达式的出现,从一定程度上改变了代码的编写方式,提供了更轻量级的语法实现。为了快速理解这一概念我们通过下面的示例代码进行理解:
Java Lambda Expression 出现前的函数式接口编码方式(‘重量级”编程方式)
Collections.sort(list, new Comparator<String>(){
    @Override
    public int compare(String str1, String str2){
        return str1.compareTo(str2);
    }
})123456
Java Lambda Expression 出现之后的Lambda式编码方式(“轻量级”编码方式)
 
Collections.sort(list, (str1, str2) -> str1.compareTo(str2));1
在使用Java Lambda Expression之后是不是感觉整个编码方式都不对劲了~^-^~。上面的Lambda表达式将会由Java编译器自动推导出参数类型,并将其翻译为对应的方法。最终我们只是用(str1, str2) -> str1.compareTo(str2)这一段表达式就完成了之前需要使用一个匿名类来完成的功能。
lambda表达式的语法由参数列表、箭头符号->和函数体组成。函数体既可以是一个表达式,也可以是一个语句块:
1.表达式:表达式会被执行然后返回执行结果。
2.语句块:语句块中的语句会被依次执行,就像方法中的语句一样。同样的在执行完所有代码语句后,return语句会把控制权交给匿名方法(Lambda表达式)的调用者。break和continue只能在循环中使用,如果函数体有返回值,那么函数体内部的每一条路径都必须返回值。

以上是关于Lamda Expression的主要内容,如果未能解决你的问题,请参考以下文章

Lamda groupingBy

Lamda groupingBy

Lamda Expression

java笔记:Lamda 表达式

AI 界著名“嘴炮”发声:鬼扯,LaMDA 不可能觉醒!

Java1.8 ​lamda+方法引用 + 函数式接口