##1 什麼是lambda表示式?
lambda表示式(也叫做閉包),是jdk8中的新語法,它允許我們將函式當成引數傳遞給某個方法或者將**本身作為資料進行處理。
##2 lambda表示式示例
###2.1 用lambda表示式實現runnable
//通過匿名內部類方法重寫runnable介面
new thread(new runnable()
}).start();
//因為重寫的方法是沒有引數的所以在這個括號中什麼都沒有寫
new thread(() -> ).start();
我們也可以通過lambda表示式實現具有引數的介面,在方法體內編寫重寫的**。
//首選我們具有介面類 在介面中有抽象方法operation
inte***ce integermath
//傳統方式實現介面的方法重寫介面
new integermath()
};//lambda方法實現重寫引數介面方法
integermath integermath = (a,b) -> a * b;
//模擬呼叫
public int operatebinary(int a, int b, integermath op)
//傳統呼叫
public class calculator{};
calcutor calcutor = new calcutor();
system.out.println("5 * 4 = " +
calcutor.operatebinary(5, 4, new integermath()
}));
//lambda表示式進行呼叫
system.out.println("3 * 4 = " + calcutor.operatebinary(3, 4, integermath ));
###2.2 lambda表示式與stream api的新增predicate條件實現filter對集合進行過濾篩選遍歷
//lambda表示式 與 predicate介面進行篩選
list names = new arraylist();
names.add("xiaoming");
names.add("lilei");
names.add("hanmeimei");
names.add("xuzhouzhou");
names.add("linyang");
names.add("jingqiu");
names.add("laosan");
names.add("shenjiayi");
names.add("kejingteng");
names.add("linzhenxin");
names.add("xutaiyu");
/*新增篩選條件*/
predicatepredicate1 = (n) -> n.contains("l");
predicatepredicate2 = (n) -> n.length() > 4;
/*通過流api進行過濾並遍歷結果集
在這裡兩個predicate條件之間有and()與or()兩種條件
*/names.stream().filter(predicate1.or(predicate2)).foreach(n -> );
注意:在lambda表示式中引用的變數是不能進行修改的,也就是在lambda表示式中引用的變數是預設final修飾的。
lambda
public static void main(string args) ).collect(collectors.tolist());
system.out.println(result);
}
JDK8 新特性 Lambda 表示式
lambda 表示式概訴 對介面進行實現呼叫 中代表著介面的入引數 中內容是介面的實現 當 中的引數有切僅有乙個時 本身可以省略 同理 當方法實現有切僅有一行時 本身也可以省略 宣告介面 public inte ce personsaymethod使用介面 public class lambdate...
JDK8新特性 Lambda表示式(上)
lambda表示式理解為簡介的表示可傳遞的匿名函式的一種方式。匿名,與普通的方法不同,沒有明確的名稱 函式,不像普通方法那樣屬於某個特定的類,但是他和方法一樣都具有引數列表 函式主體 返回型別 還有可能有丟擲異常的列表 傳遞,可以作為引數傳遞給方法或儲存在變數中 簡潔,無需像匿名類那樣寫很多的模版 ...
JDK8新特性之Lambda表示式
lambda表示式主要是替換了原有匿名內部類的寫法,也就是簡化了匿名內部類的寫法。lambda語法結構 引數1,引數2.先看乙個使用匿名內部類定義乙個新執行緒的方法 test public void test1 start for int x 0 x 100 x 使用lambda表示式則可以簡化匿名...