Lambda表達式作爲Java最值得學習的特性之一,寫得好的lambda表達式可以極大的減少代碼冗餘,可讀性也會優於冗長的內部類,匿名類。
lambda表達式語法
- lambda表達式的一般語法
(Type1 param1, Type2 param2, …, TypeN paramN) -> {
statment1;
statment2;
//…
return statmentM;
}
這是lambda表達式的完全式語法,後面幾種語法是對它的簡化。
- 單參數語法
param1 -> {
statment1;
statment2;
//…
return statmentM;
}
當lambda表達式的參數個數只有一個,可以省略小括號
例如:將列表中的字符串轉換爲全小寫
List proNames = Arrays.asList(new String[]{“Ni”,“Hao”,“Lambda”});
List lowercaseNames1 = proNames.stream().map(name -> {return name.toLowerCase();}).collect(Collectors.toList());
- 單語句寫法
param1 -> statment
當lambda表達式只包含一條語句時,可以省略大括號、return和語句結尾的分號。
例如:將列表中的字符串轉換爲全小寫
List proNames = Arrays.asList(new String[]{“Ni”,“Hao”,“Lambda”});
List lowercaseNames2 = proNames.stream().map(name -> name.toLowerCase()).collect(Collectors.toList());
- 方法引用寫法
Class or instance :: method
例如:將列表中的字符串轉換爲全小寫
List proNames = Arrays.asList(new String[]{“Ni”,“Hao”,“Lambda”});
List lowercaseNames3 = proNames.stream().map(String::toLowerCase).collect(Collectors.toList());