java lamada是什么,讓我們一起了解一下?
lambda是通過表達式來代替功能接口,lambda表達式就和方法一樣,提供了一個正常的參數列表和一個使用這些參數的主體,增強了集合庫,在Lambda表達式中this是指外圍實例,而匿名類中的this是指匿名類實例。
Lambda表達式的語法是什么?
//?1.?不需要參數,返回值為?5?? ()?->?5?? ?? //?2.?接收一個參數(數字類型),返回其2倍的值?? x?->?2?*?x?? ?? //?3.?接受2個參數(數字),并返回他們的差值?? (x,?y)?->?x?–?y?? ?? //?4.?接收2個int型整數,返回他們的和?? (int?x,?int?y)?->?x?+?y???? //?5.?接受一個?string?對象,并在控制臺打印,不返回任何值(看起來像是返回void)?? (String?s)?->?System.out.print(s)
我們已經知道什么是lambda表達式,那假設有一個玩家List,程序員可以使用 for 語句 ("for 循環")來遍歷,在Java SE 8中是不是可以轉換為另一種形式?
具體代碼如下:
String[]?atp?=?{"Rafael?Nadal",?"Novak?Djokovic",?? ???????"Stanislas?Wawrinka",?? ???????"David?Ferrer","Roger?Federer",?? ???????"Andy?Murray","Tomas?Berdych",?? ???????"Juan?Martin?Del?Potro"};?? List?players?=??Arrays.asList(atp);?? ?? //?以前的循環方式?? for?(String?player?:?players)?{?? ?????System.out.print(player?+?";?");?? }?? ?? //?使用?lambda?表達式以及函數操作(functional?operation)?? players.forEach((player)?->?System.out.print(player?+?";?"));?? ??? //?在?Java?8?中使用雙冒號操作符(double?colon?operator)??此現象較靜態引用。 players.forEach(System.out::println);
以上就是小編今天的分享了,希望可以幫助到大家。