Java8函數(shù)式接口java.util.function速查大全
前言
Java 8中有很多新實(shí)用的特性,其中就有函數(shù)式接口.相信很多小伙伴都是第一次聽到這個(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è)同類型操作符的操作,并且返回了操作符同類型的結(jié)果 |
| BiPredicate<T,U> | 代表了一個(gè)兩個(gè)參數(shù)的boolean值方法 |
| BooleanSupplier | 代表了boolean值結(jié)果的提供方 |
| Consumer | 代表了接受一個(gè)輸入?yún)?shù)并且無返回的操作 |
| 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類型輸入,返回一個(gè)int類型結(jié)果。 |
| DoubleToLongFunction | 接受一個(gè)double類型輸入,返回一個(gè)long類型結(jié)果 |
| DoubleUnaryOperator | 接受一個(gè)參數(shù)同為類型double,返回值類型也為double 。 |
| Function<T,R> | 接受一個(gè)輸入?yún)?shù),返回一個(gè)結(jié)果。 |
| IntBinaryOperator | 接受兩個(gè)參數(shù)同為類型int,返回值類型也為int 。 |
| IntConsumer | 接受一個(gè)int類型的輸入?yún)?shù),無返回值 。 |
| IntFunction | 接受一個(gè)int類型輸入?yún)?shù),返回一個(gè)結(jié)果 。 |
| IntPredicate | 接受一個(gè)int輸入?yún)?shù),返回一個(gè)布爾值的結(jié)果。 |
| IntSupplier | 無參數(shù),返回一個(gè)int類型結(jié)果。 |
| IntToDoubleFunction | 接受一個(gè)int類型輸入,返回一個(gè)double類型結(jié)果 。 |
| IntToLongFunction | 接受一個(gè)int類型輸入,返回一個(gè)long類型結(jié)果。 |
| IntUnaryOperator | 接受一個(gè)參數(shù)同為類型int,返回值類型也為int 。 |
| LongBinaryOperator | 接受兩個(gè)參數(shù)同為類型long,返回值類型也為long。 |
| LongConsumer | 接受一個(gè)long類型的輸入?yún)?shù),無返回值。 |
| LongFunction | 接受一個(gè)long類型輸入?yún)?shù),返回一個(gè)結(jié)果。 |
| LongPredicate | R接受一個(gè)long輸入?yún)?shù),返回一個(gè)布爾值類型結(jié)果。 |
| LongSupplier | 無參數(shù),返回一個(gè)結(jié)果long類型的值。 |
| LongToDoubleFunction | 接受一個(gè)long類型輸入,返回一個(gè)double類型結(jié)果。 |
| LongToIntFunction | 接受一個(gè)long類型輸入,返回一個(gè)int類型結(jié)果。 |
| LongUnaryOperator | 接受一個(gè)參數(shù)同為類型long,返回值類型也為long。 |
| ObjDoubleConsumer | 接受一個(gè)object類型和一個(gè)double類型的輸入?yún)?shù),無返回值。 |
| ObjIntConsumer | 接受一個(gè)object類型和一個(gè)int類型的輸入?yún)?shù),無返回值。 |
| ObjLongConsumer | 接受一個(gè)object類型和一個(gè)long類型的輸入?yún)?shù),無返回值。 |
| Predicate | 接受一個(gè)輸入?yún)?shù),返回一個(gè)布爾值結(jié)果。 |
| Supplier | 無參數(shù),返回一個(gè)結(jié)果。 |
| ToDoubleBiFunction<T,U> | 接受兩個(gè)輸入?yún)?shù),返回一個(gè)double類型結(jié)果 |
| ToDoubleFunction | 接受一個(gè)輸入?yún)?shù),返回一個(gè)double類型結(jié)果 |
| ToIntBiFunction<T,U> | 接受兩個(gè)輸入?yún)?shù),返回一個(gè)int類型結(jié)果。 |
| ToIntFunction | 接受一個(gè)輸入?yún)?shù),返回一個(gè)int類型結(jié)果。 |
| ToLongBiFunction<T,U> | 接受兩個(gè)輸入?yún)?shù),返回一個(gè)long類型結(jié)果。 |
| ToLongFunction | 接受一個(gè)輸入?yún)?shù),返回一個(gè)long類型結(jié)果。 |
| UnaryOperator | 接受一個(gè)參數(shù)為類型T,返回值類型也為T。 |
結(jié)語
java.util.function很多類是包含函數(shù)式接口的,函數(shù)式接口是一個(gè)比較抽象的概念,可能剛剛接觸或者了解感到無從下手,多編程練習(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實(shí)現(xiàn)租車管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于java實(shí)現(xiàn)租車管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
Java使用Scanner類進(jìn)行控制臺(tái)輸入實(shí)現(xiàn)方法
這篇文章主要介紹了Java使用Scanner類進(jìn)行控制臺(tái)輸入實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
搭建SpringBoot項(xiàng)目三種方式(圖文教程)
Springboot作為當(dāng)下最主流的java開發(fā)框架,已成為IT從業(yè)人員的入門必備技能,本文主要介紹了搭建SpringBoot項(xiàng)目三種方式,感興趣的可以了解一下2023-09-09
JNDI簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了JNDI簡(jiǎn)介,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
Java超詳細(xì)教你寫一個(gè)學(xué)籍管理系統(tǒng)案例
這篇文章主要介紹了怎么用Java來寫一個(gè)學(xué)籍管理系統(tǒng),學(xué)籍管理主要涉及到學(xué)生信息的增刪查改,本篇將詳細(xì)的實(shí)現(xiàn),感興趣的朋友跟隨文章往下看看吧2022-03-03

