JAVA8 BiConsumer 接口

這個接口跟《JAVA8 Consumer接口》很像,表達的想法也是一致的,都是消費的意思,我們先看下接口定義

@FunctionalInterface
public interface BiConsumer<T, U> {
 
    
    void accept(T t, U u);
 
    /**本接口中的accept先執行,傳入的BiConsumer 接口類型的參數,後執行accept*/
    default BiConsumer<T, U> andThen(BiConsumer<? super T, ? super U> after) {
        Objects.requireNonNull(after);
 
        return (l, r) -> {
            accept(l, r);
            after.accept(l, r);
        };
    }
}


這個接口接收兩個泛型參數,跟Consumer一樣,都有一個 accept方法,只不過,這裏的,接收兩個泛型參數,對這兩個參數做下消費處理;使用這個函數式接口的終端操作有map的遍歷;下面看下面的例子,兩個參數消費數據的

 Map<String, String> map = new HashMap<>();
        map.put("a", "a");
        map.put("b", "b");
        map.put("c", "c");
        map.put("d", "d");
        map.forEach((k, v) -> {
            System.out.println(k);
            System.out.println(v);
        });


可以看到,Map接口的終端操作,forEach的參數就是BiConsumer函數接口,對HashMap 的數據進行消費;BiConsumer函數接口還有一個默認函數,andThen,接收一個BiConsumer接口,先執行本接口的,再執行傳入的參數。

 

1.lambda表達式
《java8 Lambda表達式簡介》

《java8 lambda表達式,方法的引用以及構造器的引用》

2.函數式接口
《java8 函數式接口簡介》

《JAVA8 Function接口以及同類型的特化的接口》

《JAVA8 Consumer接口》

《JAVA8 Supplier接口》

《JAVA8 UnaryOperator接口》

《JAVA8 BiConsumer 接口》

3.stream接口操作

《java8 Stream接口簡介》

《 java8 Stream-創建流的幾種方式》

《JAVA8 stream接口 中間操作和終端操作》

《JAVA8 Stream接口,map操作,filter操作,flatMap操作》

《JAVA8 stream接口 distinct,sorted,peek,limit,skip》

《java8 stream接口 終端操作 forEachOrdered和forEach》

《java8 stream接口 終端操作 toArray操作》

《java8 stream接口 終端操作 min,max,findFirst,findAny操作》

《java8 stream接口終端操作 count,anyMatch,allMatch,noneMatch》

《java8 srteam接口終端操作reduce操作》

《java8 stream接口 終端操作 collect操作》

4.其他部分

《java8 Optional靜態類簡介,以及用法》

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