landa表示式的一點東西
阿新 • • 發佈:2018-12-16
1:作用
代替匿名內部類、各種回撥,簡化程式碼。在編譯時還是會將lamda表示式編譯為匿名內部類。
2:格式
2.1 多引數
(x1,x2,....) -> { 表示式1;表示式2;.......};
2.2 單引數
x1 -> {表示式1;表示式2;......}
當引數只有1個時可以省略左邊的小括號。
2.4 單引數 單語句
x1 -> 表示式1
單語句時可以省略大括號
2.5 例
排序 List<String> strList = Arrays.asList(new String[] {"a","d","c"}); //匿名內部類寫法 Collections.sort(strList, new Comparator<String>() { @override public int compare(String str1, String str2) { return Str1.comparaTo(str2); } }); //lamda表示式寫法 collections.sort(list, (str1,str2) -> str1.comparaTo(str2)); //方法引用輸出結果 list.foreach(system.out::println);
3 方法引用
格式
Class or instance :: method
例
list.foreach(system.out::println) //一次列印list中的資料
4 構造器引用
格式
ClassName::new
把lambda表示式的引數當成ClassName構造器的引數 。例如BigDecimal::new等同於x->new BigDecimal(x)。