Lambda表达式在Java8中的应用

学习Lambda表达式要先理解什么是函数式接口,可以参看我转载的这篇博客:

https://blog.****.net/Dongguabai/article/details/80841729


“->”是Lambda表达式的操作符,操作符的左侧是表达式的参数列表,右侧是需要执行的功能,即Lambda体。

格式一:无参数,无返回值

以Runnable接口为例:

Lambda表达式在Java8中的应用

执行:

Lambda表达式在Java8中的应用

执行结果:

Lambda表达式在Java8中的应用

格式二:有参数,无返回值

这里定义一个函数式接口:

Lambda表达式在Java8中的应用

执行:

Lambda表达式在Java8中的应用

执行结果:

Lambda表达式在Java8中的应用

如果只有一个参数的话,参数的小括号可以不写:

上面的代码可以写成:

Lambda表达式在Java8中的应用

格式三:有多个参数,有返回值,并且Lambda体中有多条语句

这种情况下需要使用大括号和return。

定义一个函数式接口:

Lambda表达式在Java8中的应用

执行:

Lambda表达式在Java8中的应用

执行结果:

Lambda表达式在Java8中的应用

格式四:有多个参数,有返回值,Lambda体中只有一条语句

这种情况大括号和return都可以不写了。

Lambda表达式在Java8中的应用

执行结果:

Lambda表达式在Java8中的应用

还有一个就是要注意数据类型的问题,要么所有的参数都写数据类型,要么都不写,JVM编译器会根据上下文推断数据类型。

在循环中的使用

Lambda表达式在Java8中的应用

循环遍历Map

Lambda表达式在Java8中的应用