Lambda表示式入門--函數語言程式設計與函式式介面

好多可樂發表於2020-12-31

一,函數語言程式設計:

  1. 函數語言程式設計是基於函式式介面並使用lambda表達的程式設計方式
  2. 函數語言程式設計理念是將程式碼作為可重用資料代入到程式執行中(以前傳統物件導向開發時都是一些比如人名,編號之類的一些具體資訊。函數語言程式設計的核心是將已經準備好的程式碼作為可重用資源參與程式執行過程中,通過傳入不同程式碼塊展現出不同的行為)
  3. 函數語言程式設計強調“你想做什麼”,而不是“你想怎麼做”

二,函式式介面:

  1. 函式式介面:介面中有且只有一個抽象方法的介面
  2. java中擁有大量函式式介面,比如java.lang.Runnable
  3. jdk8後提供了一系列新的函式式介面,位於java.util.function

三,函式式介面Predicate

  1. predicate是新增的函式式介面,位於java.util.function
  2. predicate用於測試傳入的資料是否滿足判斷要求,類似於if,滿足條件返回true,反之返回false
  3. predicate介面需要實現test()方法進行邏輯判斷
public static void main(String[] args) {
    // 求小於4的數
    Predicate<Integer> predicate = n -> n < 4;
    System.out.println(predicate.test(12));
    }
public class PredicateSample {
    public static void filter(List<Integer> list, Predicate<Integer> predicate) {
        for (Integer i : list) {
            if (predicate.test(i)) {
                System.out.print(i + " ");
            }
        }
        System.out.println();
    }

    public static void main(String[] args) {
        // 求奇數
        List<Integer> lists = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);
        filter(lists, n -> n % 2 == 1);
        // 求大於4的偶數
        filter(lists, n -> n % 2 == 0 && n > 4);
    }
}

相關文章