lamada,java
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
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);