原載於利永貞網
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<String> names=Arrays.asList("google","liyongzhen","baidu","0735it"); for(String s:names){ System.out.println(s); }
使用Lambda後
List<String> names=Arrays.asList("google","liyongzhen","baidu","0735it"); names.forEach(s->System.out.println(s));