Java 函數式接口其中有一個單一的功能,以顯示出這些接口。
接口函數名 | 說明 |
---|---|
BiConsumer<T,U> | 表示接收兩個輸入參數和不返回結果的操作。 |
BiFunction<T,U,R> | 表示接受兩個參數,併產生一個結果的函數。 |
BinaryOperator | 表示在相同類型的兩個操作數的操作,生產相同類型的操作數的結果。 |
BiPredicate<T,U> | 代表兩個參數謂詞(布爾值函數)。 |
BooleanSupplier | 代表布爾值結果的提供者。 |
Consumer | 表示接受一個輸入參數和不返回結果的操作。 |
DoubleBinaryOperator | 代表在兩個double值操作數的運算,併產生一個double值結果。 |
DoubleConsumer | 表示接受一個double值參數,不返回結果的操作。 |
DoubleFunction | 表示接受double值參數,併產生一個結果的函數。 |
DoublePredicate | 代表一個double值參數謂詞(布爾值函數)。 |
DoubleSupplier | 表示表示接受double值參數,併產生一個結果的函數。值結果的提供者。 |
DoubleToIntFunction | 表示接受一個double值參數,不返回結果的操作。 |
DoubleFunction | 表示接受double值參數,併產生一個結果的函數。 |
DoublePredicate | 代表一個double值參數謂詞(布爾值函數)。 |
DoubleSupplier | DoubleToIntFunction |
DoubleToIntFunction | 表示接受double值參數,併產生一個int值結果的函數。 |
DoubleToLongFunction | 表示上產生一個double值結果的單個double值操作數的操作。 |
Function<T,R> | 代表接受一個double值參數,併產生一個long值結果的函數。 |
DoubleUnaryOperator | 表示上產生一個double值結果的單個double值操作數的操作。 |
Function<T,R> | 表示接受一個參數,併產生一個結果的函數。 |
IntConsumer | 表示接受單個int值的參數並沒有返回結果的操作。 |
IntFunction | 表示接受一個int值參數,併產生一個結果的函數。 |
IntPredicate | 表示一個整數值參數謂詞(布爾值函數)。 |
IntSupplier | 代表整型值的結果的提供者。 |
IntToLongFunction | 表示接受一個int值參數,併產生一個long值結果的函數。 |
IntUnaryOperator | 表示產生一個int值結果的單個int值操作數的運算。 |
LongBinaryOperator | 表示在兩個long值操作數的操作,併產生一個ObjLongConsumer值結果。 |
LongFunction | 表示接受long值參數,併產生一個結果的函數。 |
LongPredicate | 代表一個long值參數謂詞(布爾值函數)。 |
LongSupplier | 表示long值結果的提供者。 |
LongToDoubleFunction | 表示接受double參數,併產生一個double值結果的函數。 |
LongToIntFunction | 表示接受long值參數,併產生一個int值結果的函數。 |
LongUnaryOperator | 表示上產生一個long值結果單一的long值操作數的操作。 |
ObjDoubleConsumer | 表示接受對象值和double值參數,並且沒有返回結果的操作。 |
ObjIntConsumer | 表示接受對象值和整型值參數,並返回沒有結果的操作。 |
ObjLongConsumer | 表示接受對象值和整型值參數,並返回沒有結果的操作。 |
ObjLongConsumer | 表示接受對象值和double值參數,並且沒有返回結果的操作。 |
ObjIntConsumer | 表示接受對象值和整型值參數,並返回沒有結果的操作。 |
ObjLongConsumer | 表示接受對象的值和long值的說法,並沒有返回結果的操作。 |
Predicate | 代表一個參數謂詞(布爾值函數)。 |
Supplier | 表示一個提供者的結果。 |
ToDoubleBiFunction<T,U> | 表示接受兩個參數,併產生一個double值結果的功能。 |
ToDoubleFunction | 代表一個產生一個double值結果的功能。 |
ToIntBiFunction<T,U> | 表示接受兩個參數,併產生一個int值結果的函數。 |
ToIntFunction | 代表產生一個int值結果的功能。 |
ToLongBiFunction<T,U> | 表示接受兩個參數,併產生long值結果的功能。 |
ToLongFunction | 代表一個產生long值結果的功能。 |
UnaryOperator | 表示上產生相同類型的操作數的結果的單個操作數的操作。 |
總體來說這些接口一共分爲五類
Function
Function接口定義:
接受一個一個泛型T,返回一個泛型R
@FunctionalInterface
public interface Function<T, R>
所定義的抽象方法,(lambda表達式只能定義一個抽象方法);
R apply(T t);
使用案例
public static void main(String[] args) {
DoubleFunction<Integer> doubleToInt = a -> (int)a;
System.out.println(doubleToInt.apply(8.8));
}
輸出結果
8
Consumer
接口的定義
接受一個泛型T,不返回任何東西
@FunctionalInterface
public interface Consumer<T>
唯一的lambda表達式抽象方法
void accept(T t);
案例
DoubleConsumer square = a -> System.out.println(Math.sqrt(a));
DoubleConsumer pow = a -> System.out.println(Math.pow(a, a));
square.accept(2.5);
pow.accept(85.5);
}
輸出結果
1.5811388300841898
1.5244135810422116E165
Predicate
接口的定義
輸入一個泛型,返回一個Boolean型
@FunctionalInterface
public interface Predicate<T>
唯一的lambda抽象方法
boolean test(T t);
案例
public static void main(String[] args) {
DoublePredicate isDouble = a -> a > 2.0;
System.out.println(isDouble.test(1.9));
}
輸出結果
false
Supplier
接口定義
不接受任何參數,返回一個泛型T
public interface Supplier<T> {
/**
* Gets a result.
*
* @return a result
*/
T get();
}
案例
DoubleSupplier addition = () -> {
return 2.5;
};
DoubleSupplier don = () -> {
return 54.6;
};
System.out.println(addition.getAsDouble());
System.out.println(don.getAsDouble());
}
輸出結果
2.5
54.6