Java 8函數(shù)式接口Function BiFunction DoubleFunction區(qū)別
Java 8函數(shù)式接口區(qū)別
Function<T, R>、BiFunction<T, U, R> 和 DoubleFunction<R> 是 Java 8 中的函數(shù)式接口,用于表示不同數(shù)量參數(shù)的函數(shù),并且它們之間存在一些區(qū)別。
1. Function<T, R>
接受一個參數(shù)并返回一個結(jié)果的函數(shù)。它定義了一個名為 apply(T t) 的抽象方法,用于接受一個參數(shù)并將其映射為一個結(jié)果。
- 示例:
Function<Integer, String> intToString = num -> "Number: " + num; System.out.println(intToString.apply(42)); // 輸出: Number: 42
這個接口適用于將類型為 T 的參數(shù)轉(zhuǎn)換為類型為 R 的結(jié)果的場景。
2. BiFunction<T, U, R>
接受兩個參數(shù)并返回一個結(jié)果的函數(shù)。它定義了一個名為 apply(T t, U u) 的抽象方法,用于接受兩個參數(shù)并將它們映射為一個結(jié)果。
- 示例:
BiFunction<Integer, Integer, Integer> sum = (num1, num2) -> num1 + num2; System.out.println(sum.apply(2, 3)); // 輸出: 5
這個接口適用于需要對兩個輸入進(jìn)行轉(zhuǎn)換或處理的場景。
3. DoubleFunction<R>
接受一個 double 類型的參數(shù)并返回一個結(jié)果的函數(shù)。它定義了一個名為 apply(double value) 的抽象方法,用于接受一個 double 類型的參數(shù)并將其映射為一個結(jié)果。
- 示例:
DoubleFunction<Double> square = num -> num * num; System.out.println(square.apply(5.0)); // 輸出: 25.0
這個接口適用于對 double 類型的參數(shù)進(jìn)行轉(zhuǎn)換或處理的場景。
總結(jié)來說,Function<T, R>
是用于接受單個參數(shù)并返回結(jié)果的函數(shù),BiFunction<T, U, R>
是用于接受兩個參數(shù)并返回結(jié)果的函數(shù),而 DoubleFunction<R>
是用于接受 double 類型的參數(shù)并返回結(jié)果的函數(shù)。
以上就是Java 8函數(shù)式接口Function BiFunction DoubleFunction區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于Java 8函數(shù)式接口區(qū)別的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Springboot詳解如何實現(xiàn)SQL注入過濾器過程
這篇文章主要介紹了基于springboot實現(xiàn)SQL注入過濾器,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2022-06-06mybatis中orderBy(排序字段)和sort(排序方式)引起的bug及解決
這篇文章主要介紹了mybatis中orderBy(排序字段)和sort(排序方式)引起的bug,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01在IDEA中創(chuàng)建SpringBoot項目的詳細(xì)步驟
這篇文章主要給大家介紹了在IDEA中創(chuàng)建SpringBoot項目的詳細(xì)步驟,文中有詳細(xì)的圖文介紹和代碼示例,對大家的學(xué)習(xí)和工作有一定的幫助,需要的朋友可以參考下2023-09-09Java Swing實現(xiàn)坦克大戰(zhàn)游戲
這篇文章主要介紹了Java Swing實現(xiàn)坦克大戰(zhàn)游戲,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助喲,需要的朋友可以參考下2021-05-05