jdk1.8 lambda表示式入門
隨著工作的推移,發現什麼東西都自己寫很辛苦,這時候就開始想著偷懶,網上找各種工具了,但是java中基本的判斷迴圈還是用的最常見的,今天偶然發現開源專案好多都用的lambda表示式,所以靜下心來研究一下。
lamdba表示式,()->{}; 如果沒有引數可以在()不寫,有引數要寫,可以不用寫引數型別,如果該引數需要被final等修飾符修飾需要加上引數型別。
// 使用 lambda 表示式以及函式操作(functional operation) players.forEach((player) -> System.out.print(player + "; ")); // 在 Java 8 中使用雙冒號操作符(double colon operator) players.forEach(System.out::println);
lambda 常見介面:
Predicate介面
輸入一個引數,並返回一個
Boolean值,其中內建許多用於邏輯判斷的預設方法
Predicate<String> predicate = (s) -> s.length() > 0;
boolean test = predicate.test("test");
判斷是否滿足上面的條件,滿足返回true,不滿足返回false
Predicate<Object> pre = Objects::nonNull;
判斷物件是否非空,非空返回true,否則返回false
Function介面
接收一個引數,返回單一的結果,預設的方法(andThen)可將多個函式串在一起,形成複合Funtion(有輸入,有輸出)
結果,
Function<Integer, Integer> name = e -> e * 2;
Function<Integer, Integer> square = e -> e * e;
int value = name.andThen(square).apply(3);
compose 和 andThen 的不同之處是函式執行的順序不同。compose 函式先執行引數,然後執行呼叫者,而 andThen 先執行呼叫者,然後再執行引數。 所以說明andThen 先執行name後執行square
Supplier介面
返回一個給定型別的結果,與Function不同的是,Supplier不需要接受引數(供應者,有輸出無輸入)
Supplier<String> supplier = () -> "special type value";
String s = supplier.get();
System.out.println(s);
Consumer介面
代表了在單一的輸入引數上需要進行的操作。和Function不同的是,Consumer沒有返回值(消費者,有輸入,無輸出)
Consumer<Integer> add5 = (p) -> {
System.out.println("old value:" + p);
p = p + 5;
System.out.println("new value:" + p);
};
add5.accept(10);
Stream的使用過程有著固定的模式:
- 建立Stream
- 通過中間操作,對原始Stream進行“變化”並生成新的Stream
- 使用完結操作,生成最終結果
也就是
相關文章
- JDK1.8之lambda表示式JDK
- JDK1.8 之Lambda表示式JDK
- lambda表示式——快速入門
- JDK1.8新特性--Lambda表示式JDK
- jdk1.8新特性:Lambda表示式JDK
- JDK1.8新特性之Lambda表示式JDK
- JDK1.8及以上的Lambda表示式JDK
- JDK1.8新特性之Lambda表示式()->JDK
- JDK1.8 Lambda 表示式的學習JDK
- jdk1.8 新特性之 lambda表示式JDK
- 3分鐘入門lambda表示式
- Java入門:Lambda常用表示式解析Java
- JDK1.8的新特性之Lambda表示式JDK
- JDK1.8中Lambda表示式的應用JDK
- JDK1.8最新特性--Lambda表示式(重點)JDK
- JDK1.8之Lambda解析與表示式的使用JDK
- jdk1.8 新特性之 如何寫lambda表示式JDK
- JDK1.8新特性:Lambda表示式語法和內建函式式介面JDK函式
- lambda 表示式
- lambda表示式
- Lambda表示式入門--函數語言程式設計與函式式介面函數程式設計函式
- C#快速入門教程(17)—— 委託、事件與Lambda表示式C#事件
- Java | Lambda表示式Java
- Lambda表示式(Java)Java
- java lambda 表示式Java
- 八,Lambda表示式
- Java Lambda表示式Java
- [Java學習筆記]JDK1.8新特性學習(一)Lambda表示式Java筆記JDK
- [轉]Java 8 的 lambda 表示式 Java 8 的 lambda 表示式Java
- C# Lambda表示式詳解,及Lambda表示式樹的建立C#
- 淺談lambda表示式
- Lambda表示式詳解
- Java之lambda表示式Java
- kotlin lambda表示式Kotlin
- Python - lambda 表示式Python
- Lambda表示式總結
- Java的Lambda表示式Java
- Java 8 Lambda 表示式Java