Java8函數(shù)式接口java.util.function速查大全
前言
Java 8中有很多新實(shí)用的特性,其中就有函數(shù)式接口.相信很多小伙伴都是第一次聽(tīng)到這個(gè)名詞,下面進(jìn)行函數(shù)式接口相關(guān)知識(shí)的學(xué)習(xí)。
函數(shù)式接口概念
函數(shù)式接口(Functional Interface)就是一個(gè)有且僅有一個(gè)抽象方法,但是可以有多個(gè)非抽象方法的接口。
函數(shù)式接口可以被隱式轉(zhuǎn)換為 lambda 表達(dá)式。
Java 8函數(shù)式接口可以對(duì)現(xiàn)有的函數(shù)友好地支持 lambda。
函數(shù)式接口組成
包含三部分:
1、一個(gè)括號(hào)內(nèi)用逗號(hào)分隔的形式參數(shù),參數(shù)是函數(shù)式接口里面方法的參數(shù)
2、一個(gè)箭頭符號(hào):->
3、方法體,可以是表達(dá)式和代碼塊。
(parameters) -> expression 或者 (parameters) -> { statements; }
java.util.function 的函數(shù)式接口
接口 | 描述 |
---|---|
BiConsumer<T,U> | 代表了一個(gè)接受兩個(gè)輸入?yún)?shù)的操作,并且不返回任何結(jié)果 |
BiFunction<T,U,R> | 代表了一個(gè)接受兩個(gè)輸入?yún)?shù)的方法,并且返回一個(gè)結(jié)果 |
BinaryOperator | 代表了一個(gè)作用于于兩個(gè)同類(lèi)型操作符的操作,并且返回了操作符同類(lèi)型的結(jié)果 |
BiPredicate<T,U> | 代表了一個(gè)兩個(gè)參數(shù)的boolean值方法 |
BooleanSupplier | 代表了boolean值結(jié)果的提供方 |
Consumer | 代表了接受一個(gè)輸入?yún)?shù)并且無(wú)返回的操作 |
DoubleBinaryOperator | 代表了作用于兩個(gè)double值操作符的操作,并且返回了一個(gè)double值的結(jié)果。 |
DoubleConsumer | 代表一個(gè)接受double值參數(shù)的操作,并且不返回結(jié)果。 |
DoubleFunction | 代表接受一個(gè)double值參數(shù)的方法,并且返回結(jié)果 |
DoublePredicate | 代表一個(gè)擁有double值參數(shù)的boolean值方法 |
DoubleSupplier | 代表一個(gè)double值結(jié)構(gòu)的提供方 |
DoubleToIntFunction | 接受一個(gè)double類(lèi)型輸入,返回一個(gè)int類(lèi)型結(jié)果。 |
DoubleToLongFunction | 接受一個(gè)double類(lèi)型輸入,返回一個(gè)long類(lèi)型結(jié)果 |
DoubleUnaryOperator | 接受一個(gè)參數(shù)同為類(lèi)型double,返回值類(lèi)型也為double 。 |
Function<T,R> | 接受一個(gè)輸入?yún)?shù),返回一個(gè)結(jié)果。 |
IntBinaryOperator | 接受兩個(gè)參數(shù)同為類(lèi)型int,返回值類(lèi)型也為int 。 |
IntConsumer | 接受一個(gè)int類(lèi)型的輸入?yún)?shù),無(wú)返回值 。 |
IntFunction | 接受一個(gè)int類(lèi)型輸入?yún)?shù),返回一個(gè)結(jié)果 。 |
IntPredicate | 接受一個(gè)int輸入?yún)?shù),返回一個(gè)布爾值的結(jié)果。 |
IntSupplier | 無(wú)參數(shù),返回一個(gè)int類(lèi)型結(jié)果。 |
IntToDoubleFunction | 接受一個(gè)int類(lèi)型輸入,返回一個(gè)double類(lèi)型結(jié)果 。 |
IntToLongFunction | 接受一個(gè)int類(lèi)型輸入,返回一個(gè)long類(lèi)型結(jié)果。 |
IntUnaryOperator | 接受一個(gè)參數(shù)同為類(lèi)型int,返回值類(lèi)型也為int 。 |
LongBinaryOperator | 接受兩個(gè)參數(shù)同為類(lèi)型long,返回值類(lèi)型也為long。 |
LongConsumer | 接受一個(gè)long類(lèi)型的輸入?yún)?shù),無(wú)返回值。 |
LongFunction | 接受一個(gè)long類(lèi)型輸入?yún)?shù),返回一個(gè)結(jié)果。 |
LongPredicate | R接受一個(gè)long輸入?yún)?shù),返回一個(gè)布爾值類(lèi)型結(jié)果。 |
LongSupplier | 無(wú)參數(shù),返回一個(gè)結(jié)果long類(lèi)型的值。 |
LongToDoubleFunction | 接受一個(gè)long類(lèi)型輸入,返回一個(gè)double類(lèi)型結(jié)果。 |
LongToIntFunction | 接受一個(gè)long類(lèi)型輸入,返回一個(gè)int類(lèi)型結(jié)果。 |
LongUnaryOperator | 接受一個(gè)參數(shù)同為類(lèi)型long,返回值類(lèi)型也為long。 |
ObjDoubleConsumer | 接受一個(gè)object類(lèi)型和一個(gè)double類(lèi)型的輸入?yún)?shù),無(wú)返回值。 |
ObjIntConsumer | 接受一個(gè)object類(lèi)型和一個(gè)int類(lèi)型的輸入?yún)?shù),無(wú)返回值。 |
ObjLongConsumer | 接受一個(gè)object類(lèi)型和一個(gè)long類(lèi)型的輸入?yún)?shù),無(wú)返回值。 |
Predicate | 接受一個(gè)輸入?yún)?shù),返回一個(gè)布爾值結(jié)果。 |
Supplier | 無(wú)參數(shù),返回一個(gè)結(jié)果。 |
ToDoubleBiFunction<T,U> | 接受兩個(gè)輸入?yún)?shù),返回一個(gè)double類(lèi)型結(jié)果 |
ToDoubleFunction | 接受一個(gè)輸入?yún)?shù),返回一個(gè)double類(lèi)型結(jié)果 |
ToIntBiFunction<T,U> | 接受兩個(gè)輸入?yún)?shù),返回一個(gè)int類(lèi)型結(jié)果。 |
ToIntFunction | 接受一個(gè)輸入?yún)?shù),返回一個(gè)int類(lèi)型結(jié)果。 |
ToLongBiFunction<T,U> | 接受兩個(gè)輸入?yún)?shù),返回一個(gè)long類(lèi)型結(jié)果。 |
ToLongFunction | 接受一個(gè)輸入?yún)?shù),返回一個(gè)long類(lèi)型結(jié)果。 |
UnaryOperator | 接受一個(gè)參數(shù)為類(lèi)型T,返回值類(lèi)型也為T(mén)。 |
結(jié)語(yǔ)
java.util.function很多類(lèi)是包含函數(shù)式接口的,函數(shù)式接口是一個(gè)比較抽象的概念,可能剛剛接觸或者了解感到無(wú)從下手,多編程練習(xí),先會(huì)使用,慢慢就了解到了函數(shù)式接口的內(nèi)涵與優(yōu)點(diǎn)。
到此這篇關(guān)于Java8函數(shù)式接口java.util.function速查的文章就介紹到這了,更多相關(guān)Java8函數(shù)式接口速查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java關(guān)鍵字volatile和synchronized作用和區(qū)別
這篇文章主要為大家詳細(xì)介紹了Java關(guān)鍵字volatile和synchronized的作用和區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06關(guān)于java命令的本質(zhì)邏輯揭秘過(guò)程
Java是通過(guò)java虛擬機(jī)來(lái)裝載和執(zhí)行編譯文件(class文件)的,java虛擬機(jī)通過(guò)命令java option 來(lái)啟動(dòng),這篇文章主要給大家介紹了關(guān)于java命令的本質(zhì)邏輯揭秘的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-05-05基于java時(shí)區(qū)轉(zhuǎn)換夏令時(shí)的問(wèn)題及解決方法
下面小編就為大家分享一篇基于java時(shí)區(qū)轉(zhuǎn)換夏令時(shí)的問(wèn)題及解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11springboot整合企微webhook機(jī)器人發(fā)送消息提醒
這篇文章主要為大家介紹了springboot整合企微webhook機(jī)器人發(fā)送消息提醒,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12springboot自動(dòng)掃描添加的BeanDefinition源碼實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于springboot自動(dòng)掃描添加的BeanDefinition的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02SpringBoot排除自動(dòng)加載數(shù)據(jù)源方式
這篇文章主要介紹了SpringBoot排除自動(dòng)加載數(shù)據(jù)源方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實(shí)踐
這篇文章主要給大家介紹了關(guān)于利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實(shí)踐,Mybatis-Plus可以很方便地處理JSON字段,在實(shí)體類(lèi)中可以使用@JSONField注解來(lái)標(biāo)記JSON字段,需要的朋友可以參考下2024-07-07動(dòng)力節(jié)點(diǎn)_王勇_DRP項(xiàng)目視頻教程完整版292集
該視頻由國(guó)內(nèi)知名講師王勇老師主講,適合掌握J(rèn)ava基礎(chǔ)內(nèi)容的同學(xué)學(xué)習(xí),本視頻共計(jì)292集,學(xué)習(xí)Java Web項(xiàng)目,DRP項(xiàng)目視頻是首選,累計(jì)下載量已經(jīng)達(dá)到上千萬(wàn),很多同學(xué)通過(guò)自學(xué)該視頻找到了軟件開(kāi)發(fā)工作2017-04-04