1、lambda表达式:

      lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。

2、基本语法:

      我们由一个小例子开始:

(String first,String second)->first.length - second.length

      lambda表达式是一个代码块,以及必须传入代码的变量规范。lambda表达式需要有以下元素:参数,箭头(->)以及一个表达式。如果一个代码要完成的完整的计算无法放在一个表达式中,可以像写方法一样,把这些代码放在{}中,并且包含显式的return语句,如:

(String first, String second)->
{    
    if(first.length()<second.length()) return -1;
    else if(first.length()>second.length()) return 1;
    else return 0;
}

       需要注意的是,即使lambda表达式没有参数,仍然要写小括号,类似于无参的方法。

如:

()->{for (int i =100; i >=0;i--)System.out.println(i);}

      另外,lambda表达式中,只在某些分支中有返回值,而另一些分支中没有表达值,是不合法的,

如:

(int x)->{if(x>0)return 0;}

      这个就是一个不合法的表达式。

 

      如果可以推测出lambda表达式的参数类型,则可以忽略其类型。

如:

Comparator<String> comp=(first,second)
->first.length()-second.length();