原载于利永贞网


Java lambda表达式是Java 8中引入的最新功能之一。Lambda表达式是Java进入函数式编程的第一步。
Lambda表达式是一个可以创建而不属于任何类的函数。一个lambda表达式可以被传递,就好像它是一个对象并按需执行。

Lambda语法形式如下:

arguments - >body

参数可以是任意的

  • ()

  • 一个变量,如果该变量的类型可以从上下文中推断出来

  • 括号中有或没有类型的一系列变量

即如下形式演变

(params) -> expression
(params) -> statement
(params) -> { statements }

并且body可以是一个表达式或带有语句的{...}块。 表达式简单地返回,即() - > 2相当于() - > {return 2;}

Lambda表达式可以简化代码

未使用Lambda

new Thread(new Runnable(){
    @Override
    public void run() {
       System.out.print("Before java 8");
    }
    
}).start();

使用Lambda后

new Thread(()->System.out.print("in java 8 lamdao expression")).start();

使用Lambda精减迭代

未使用Lambda

List names=Arrays.asList("google","liyongzhen","baidu","0735it");
for(String s:names){
   System.out.println(s);
}

使用Lambda后

List names=Arrays.asList("google","liyongzhen","baidu","0735it");
names.forEach(s->System.out.println(s));