Lambda表達(dá)式,也可稱為閉包躺坟,它是推動(dòng) Java 8 發(fā)布的最重要新特性。
Lambda允許把函數(shù)作為一個(gè)方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。
使用 Lambda 表達(dá)式可以使代碼變的更加簡潔緊湊拯坟。
Lambda表達(dá)式語法
lambda 表達(dá)式的語法格式如下:
(parameters) -> expression
或
(parameters) ->{ statements; }
以下是lambda表達(dá)式的重要特征:
可選類型聲明:不需要聲明參數(shù)類型,編譯器可以統(tǒng)一識(shí)別參數(shù)值梧躺。
可選的參數(shù)圓括號(hào):一個(gè)參數(shù)無需定義圓括號(hào)似谁,但多個(gè)參數(shù)需要定義圓括號(hào)。
可選的大括號(hào):如果主體包含了一個(gè)語句掠哥,就不需要使用大括號(hào)巩踏。
可選的返回關(guān)鍵字:如果主體只有一個(gè)表達(dá)式返回值則編譯器會(huì)自動(dòng)返回值,大括號(hào)需要指定明表達(dá)式返回了一個(gè)數(shù)值续搀。
以下是基于Lambda的for循環(huán)的幾種方式
1.簡單的循環(huán)
IntStream.range(0,4).forEach(i->System.out.println("循環(huán)變量i:"+i));
2.list的循環(huán)
int[] index = {0};
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.forEach(e -> {
index[0] = list.indexOf(e);
System.out.print("循環(huán)變量i:"+index[0]+"\t");
System.out.println("list里面的值:"+e);
});
3.map的循環(huán)
HashMap<String, String> map = new HashMap();
map.put("1", "張三");
map.put("2", "李四");
map.put("3", "王五");
map.forEach((k,v)-> System.out.println("鍵:"+k+",值:"+v));