鍍金池/ 教程/ Java/ Java8函數(shù)式接口
Java8數(shù)據(jù)流
Java8默認(rèn)方法
Java8 Optional類
Java8 Base64
Java8期間及持續(xù)時間
Java8函數(shù)式接口
Java8 日期時間API
Java8 本地DateTime API
Java8教程
Java8 Lambda表達(dá)式
Java8環(huán)境設(shè)置
Java8向后兼容
Java8 時間調(diào)節(jié)器
Java8 ChronoUnits枚舉
Java8方法引用
Java8 Nashorn JavaScript引擎
Java8 時區(qū)DateTime API

Java8函數(shù)式接口

函數(shù)式接口其中有一個單一的功能,以顯示出這些接口。例如,一個可比接口使用單個方法compareTo,并且被用于比較目的。 Java8定義被廣泛應(yīng)用于lambda表達(dá)式很多函數(shù)形式的接口。以下是在java.util.Function包中定義的功能接口列表。

S.N. 接口和說明
1 BiConsumer<T,U>
表示接收兩個輸入?yún)?shù)和不返回結(jié)果的操作。
2 BiFunction<T,U,R>
表示接受兩個參數(shù),并產(chǎn)生一個結(jié)果的函數(shù)。
3 BinaryOperator<T>
表示在相同類型的兩個操作數(shù)的操作,生產(chǎn)相同類型的操作數(shù)的結(jié)果。
4 BiPredicate<T,U>
代表兩個參數(shù)謂詞(布爾值函數(shù))。
5 BooleanSupplier
代表布爾值結(jié)果的提供者。
6 Consumer<T>
表示接受一個輸入?yún)?shù)和不返回結(jié)果的操作。
7 DoubleBinaryOperator
代表在兩個double值操作數(shù)的運(yùn)算,并產(chǎn)生一個double值結(jié)果。
8 DoubleConsumer
表示接受一個double值參數(shù),不返回結(jié)果的操作。
9 DoubleFunction<R>
表示接受double值參數(shù),并產(chǎn)生一個結(jié)果的函數(shù)。
10 DoublePredicate
代表一個double值參數(shù)謂詞(布爾值函數(shù))。
11 DoubleSupplier
表示double值結(jié)果的提供者。
12 DoubleToIntFunction
表示接受double值參數(shù),并產(chǎn)生一個int值結(jié)果的函數(shù)。
13 DoubleToLongFunction
代表接受一個double值參數(shù),并產(chǎn)生一個long值結(jié)果的函數(shù)。
14 DoubleUnaryOperator
表示上產(chǎn)生一個double值結(jié)果的單個double值操作數(shù)的操作。
15 Function<T,R>
表示接受一個參數(shù),并產(chǎn)生一個結(jié)果的函數(shù)。
16 IntBinaryOperator
表示對兩個int值操作數(shù)的運(yùn)算,并產(chǎn)生一個int值結(jié)果。
17 IntConsumer
表示接受單個int值的參數(shù)并沒有返回結(jié)果的操作。
18 IntFunction<R>
表示接受一個int值參數(shù),并產(chǎn)生一個結(jié)果的函數(shù)。
19 IntPredicate
表示一個整數(shù)值參數(shù)謂詞(布爾值函數(shù))。
20 IntSupplier
代表整型值的結(jié)果的提供者。
21 IntToDoubleFunction
表示接受一個int值參數(shù),并產(chǎn)生一個double值結(jié)果的功能。
22 IntToLongFunction
表示接受一個int值參數(shù),并產(chǎn)生一個long值結(jié)果的函數(shù)。
23 IntUnaryOperator
表示產(chǎn)生一個int值結(jié)果的單個int值操作數(shù)的運(yùn)算。
24 LongBinaryOperator
表示在兩個long值操作數(shù)的操作,并產(chǎn)生一個long值結(jié)果。
25 LongConsumer
表示接受一個long值參數(shù)和不返回結(jié)果的操作。
26 LongFunction<R>
表示接受long值參數(shù),并產(chǎn)生一個結(jié)果的函數(shù)。
27 LongPredicate
代表一個long值參數(shù)謂詞(布爾值函數(shù))。
28 LongSupplier
表示long值結(jié)果的提供者。
29 LongToDoubleFunction
表示接受double參數(shù),并產(chǎn)生一個double值結(jié)果的函數(shù)。
30 LongToIntFunction
表示接受long值參數(shù),并產(chǎn)生一個int值結(jié)果的函數(shù)。
31 LongUnaryOperator
表示上產(chǎn)生一個long值結(jié)果單一的long值操作數(shù)的操作。
32 ObjDoubleConsumer<T>
表示接受對象值和double值參數(shù),并且沒有返回結(jié)果的操作。
33 ObjIntConsumer<T>
表示接受對象值和整型值參數(shù),并返回沒有結(jié)果的操作。
34 ObjLongConsumer<T>
表示接受對象的值和long值的說法,并沒有返回結(jié)果的操作。
35 Predicate<T>
代表一個參數(shù)謂詞(布爾值函數(shù))。
36 Supplier<T>
表示一個提供者的結(jié)果。
37 ToDoubleBiFunction<T,U>
表示接受兩個參數(shù),并產(chǎn)生一個double值結(jié)果的功能。
38 ToDoubleFunction<T>
代表一個產(chǎn)生一個double值結(jié)果的功能。
39 ToIntBiFunction<T,U>
表示接受兩個參數(shù),并產(chǎn)生一個int值結(jié)果的函數(shù)。
40 ToIntFunction<T>
代表產(chǎn)生一個int值結(jié)果的功能。
41 ToLongBiFunction<T,U>
表示接受兩個參數(shù),并產(chǎn)生long值結(jié)果的功能。
42 ToLongFunction<T>
代表一個產(chǎn)生long值結(jié)果的功能。
43 UnaryOperator<T>
表示上產(chǎn)生相同類型的操作數(shù)的結(jié)果的單個操作數(shù)的操作。

函數(shù)接口例子

謂詞 Predicate<T> 接口與方法試驗(對象)返回一個布爾值功能接口。此接口意味著一個對象被檢測為 true 或 false。

選擇使用任何編輯器創(chuàng)建以下java程序在 C:/> JAVA

Java8Tester.java
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class Java8Tester {
   public static void main(String args[]){

      List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);

      // Predicate<Integer> predicate = n -> true
      // n is passed as parameter to test method of Predicate interface
      // test method will always return true no matter what value n has.
      System.out.println("Print all numbers:");		
      //pass n as parameter 
      eval(list, n->true);

      // Predicate<Integer> predicate1 = n -> n%2 == 0
      // n is passed as parameter to test method of Predicate interface
      // test method will return true if n%2 comes to be zero
      System.out.println("Print even numbers:");
      eval(list, n-> n%2 == 0 ); 

      // Predicate<Integer> predicate2 = n -> n > 3
      // n is