Lambda表達(dá)式學(xué)習(xí)(三)Lambda 表達(dá)式需要“函數(shù)式接口”的支持

看過我第一篇文章Lambda表達(dá)式學(xué)習(xí)(一)為什么使用Lambda表達(dá)式?的同學(xué)應(yīng)該知道在使用Lambda表達(dá)式的時候需要用到接口我碟,如果我們每次有新的需求都去寫一個接口的話我們的代碼會變的比較繁瑣尾抑,當(dāng)然蹬音,Java工程師想到了這個問題河狐,并且給我們提供好了相應(yīng)的接口砖织,我們就不需要自己在一個個去寫征椒〗慷撸看過我第二篇文章Lambda表達(dá)式學(xué)習(xí)(二)Lambda基礎(chǔ)語法的同學(xué)應(yīng)該看到我在結(jié)尾的時候簡單的說了一下什么叫函數(shù)式接口,函數(shù)式接口:接口中只有一個抽象方法的接口勃救,稱為函數(shù)式接口碍讨,接下來我將講一下Java8中內(nèi)置的核心的四大函數(shù)式接口。
接口一:

Consumer<T> : 消費型接口
void accept(T t);

舉個栗子蒙秒,我們?nèi)ネ饷娉燥埖臅r候就會進(jìn)行一個消費

public void eat(double money, Consumer<Double> con){
    con.accept(money);
}

@Test
public void consumer(){
  eat(10000, (m) -> System.out.println("吃飯消費了:" + m + "元"));
} 

接口二:

Supplier<T> : 供給型接口
T get();

供給型就是外部給我們返回一個東西勃黍,看代碼我相信你會更加的理解:

//需求:產(chǎn)生指定個數(shù)的整數(shù),并放入集合中
public List<Integer> getNumList(int num, Supplier<Integer> sup){
    List<Integer> list = new ArrayList<>();
    for (int i = 0; i < num; i++) {
        Integer n = sup.get();
        list.add(n);
    }
    return list;
}

@Test
public void supplier(){
    List<Integer> numList = getNumList(10, () -> (int)(Math.random() * 100));
    for (Integer num : numList) {
        System.out.println(num);
    }
}

接口三:

Function<T, R> : 函數(shù)型接口
R apply(T t);

//需求:用于處理字符串
public String strHandler(String str, Function<String, String> fun){
        return fun.apply(str);
}


@Test
public void function(){
    String newStr = strHandler("\t\t\t Function   ", (str) -> str.trim());
    System.out.println(newStr);
    String subStr = strHandler("Function", (str) -> str.substring(2, 5));
    System.out.println(subStr);
}

接口四:

Predicate<T> : 斷言型接口
boolean test(T t);

//Predicate<T> 斷言型接口:
@Test
public void predicate(){
    List<String> list = Arrays.asList("Hello", "predicate", "Lambda", "www", "ok");
    List<String> strList = filterStr(list, (s) -> s.length() > 3);
    for (String str : strList) {
        System.out.println(str);
    }
}

//需求:將滿足條件的字符串晕讲,放入集合中
public List<String> filterStr(List<String> list, Predicate<String> pre){
    List<String> strList = new ArrayList<>();
    for (String str : list) {
        if(pre.test(str)){
            strList.add(str);
        }
    }       
    return strList;
}

當(dāng)然Java8還內(nèi)置了一些其他的接口覆获,但是都是上面的接口的之類马澈,如果上面的用法你掌握了,其他的子接口的用法是一樣的弄息。
Lambda表達(dá)式學(xué)習(xí)(四)Lambda 表達(dá)式方法引用和構(gòu)造器引用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痊班,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疑枯,更是在濱河造成了極大的恐慌辩块,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荆永,死亡現(xiàn)場離奇詭異废亭,居然都是意外死亡,警方通過查閱死者的電腦和手機具钥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門豆村,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骂删,你說我怎么就攤上這事掌动。” “怎么了宁玫?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵粗恢,是天一觀的道長。 經(jīng)常有香客問我欧瘪,道長眷射,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任佛掖,我火速辦了婚禮妖碉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘芥被。我一直安慰自己欧宜,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布拴魄。 她就那樣靜靜地躺著冗茸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匹中。 梳的紋絲不亂的頭發(fā)上夏漱,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音职员,去河邊找鬼。 笑死跛溉,一個胖子當(dāng)著我的面吹牛焊切,可吹牛的內(nèi)容都是我干的扮授。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼专肪,長吁一口氣:“原來是場噩夢啊……” “哼刹勃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嚎尤,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤荔仁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芽死,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乏梁,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年关贵,在試婚紗的時候發(fā)現(xiàn)自己被綠了遇骑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡揖曾,死狀恐怖落萎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情炭剪,我是刑警寧澤练链,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站奴拦,受9級特大地震影響媒鼓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜粱坤,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一隶糕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧站玄,春花似錦枚驻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晾剖,卻和暖如春锉矢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背齿尽。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工沽损, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人循头。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓绵估,卻偏偏與公主長得像炎疆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子国裳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • “你可能還會喜歡” 老公,何必拿我的作品去自取其辱呢渺杉!面對這個上司的無理要求蛇数,他寧愿辭職也絕不低頭!如果不領(lǐng)悟這四...
    蝸流兒閱讀 2,068評論 30 49
  • 也就跑出去到處逛逛少办,今天好像比昨天更冷了一點 晚上難得地 跟她一起做做一天中最后的家務(wù) 難得地?fù)碛兄粚儆谖覀兊臅r...
    Hasegawa閱讀 174評論 0 0
  • 2016-02-01 標(biāo)準(zhǔn)io 標(biāo)準(zhǔn)io處理了很多細(xì)節(jié)苞慢,例如緩存分配,優(yōu)化長度執(zhí)行io等英妓。 流和file對象 之前...
    千里山南閱讀 1,175評論 0 0