lambda表達式的簡單使用

本文參考自:java8函數式編程

鏈接:https://blog.csdn.net/qq_28411869/article/details/82841706

 

public class demo1 {
    
    public static void main(String[] args) {
        
        Predicate<Integer> a = (x)->x<6;    //接受一個參數返回布爾類型
        System.out.println(a.test(5));
        System.out.println(a.test(6));
        
        BinaryOperator<Integer> addBinaryOperator = (x,y)->x+y;        //接受2個參數,返回一個值,不聲明類型編輯不通過
        System.out.println(addBinaryOperator.apply(3, 5));
        
        BinaryOperator<String> addBinaryOperator2 = (x, y)->x+y;        //接受2個參數,返回一個值
        System.out.println(addBinaryOperator2.apply("3", "5"));
    }
}

 

public class demo1 {
    public static void main(String[] args) {
        List<String> asList = Arrays.asList("","2","3","4","3");
        //爲空的數量
        long filter = asList.stream().filter(list -> list.isEmpty()).count();         //Stream 是用函數式編程方式在集合類上進行復雜操作的工具。
        System.out.println(filter);
        
        long filter2 = asList.stream()
                             .filter(list -> {
                                 System.out.println(list);        //會輸出
                                 return list.isEmpty();
                             }).count();
        
        /**
         *     判斷一個操作是惰性求值還是及早求值很簡單:
         *     只需看它的返回值。如果返回值是 Stream, 那麼是惰性求值;
         *     如果返回值是另一個值或爲空,那麼就是及早求值。
         *     使用這些操作的理 想方式就是形成一個惰性求值的鏈,最後用一個及早求值的操作返回想要的結果,這正是 它的合理之處。
         */
        Stream<String> filter3 = asList.stream()
                                         .filter(list -> {
                                             System.out.println(list);        //不會輸出
                                             return list.isEmpty();
                                         });
        
    }
}

發佈了3 篇原創文章 · 獲贊 0 · 訪問量 232
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章