轉載自:Java 8 函數式介面
函數式介面(Functional Interface)就是一個具有一個方法的普通介面。
函數式介面可以被隱式轉換為lambda運算式。
函數式介面可以現有的函數友好地支援 lambda。
JDK 1.8之前已有的函數式介面: java.lang.Runnable java.util.concurrent.Callable java.security.PrivilegedAction java.util.Comparator java.io.FileFilter java.nio.file.PathMatcher java.lang.reflect.InvocationHandler java.beans.PropertyChangeListener java.awt.event.ActionListener javax.swing.event.ChangeListener
JDK 1.8 新增加的函數介面: java.util.function
| 序號 |
介面 |
描述 |
| 1 |
BiConsumer |
代表了一個接受兩個輸入參數的操作,並且不返回任何結果 |
| 2 |
BiFunction |
代表了一個接受兩個輸入參數的方法,並且返回一個結果 |
| 3 |
BinaryOperator |
代表了一個作用于于兩個同類型操作符的操作,並且返回了操作符同類型的結果 |
| 4 |
BiPredicate |
代表了一個兩個參數的boolean值方法 |
| 5 |
BooleanSupplier |
代表了boolean值結果的提供方 |
| 6 |
Consumer |
代表了接受一個輸入參數並且無返回的操作 |
| 7 |
DoubleBinaryOperator |
代表了作用於兩個double值操作符的操作,並且返回了一個double值的結果。 |
| 8 |
DoubleConsumer |
代表一個接受double值參數的操作,並且不返回結果。 |
| 9 |
DoubleFunction |
代表接受一個double值參數的方法,並且返回結果 |
| 10 |
DoublePredicate |
代表一個擁有double值參數的boolean值方法 |
| 11 |
DoubleSupplier |
代表一個double值結構的提供方 |
| 12 |
DoubleToIntFunction |
接受一個double類型輸入,返回一個int類型結果。 |
| 13 |
DoubleToLongFunction |
接受一個double類型輸入,返回一個long類型結果 |
| 14 |
DoubleUnaryOperator |
接受一個參數同為類型double,傳回值類型也為double 。 |
| 15 |
Function |
接受一個輸入參數,返回一個結果。 |
| 16 |
IntBinaryOperator |
接受兩個參數同為類型int,傳回值類型也為int 。 |
| 17 |
IntConsumer |
接受一個int類型的輸入參數,無傳回值 。 |
| 18 |
IntFunction |
接受一個int類型輸入參數,返回一個結果 。 |
| 19 |
IntPredicate |
接受一個int輸入參數,返回一個布爾值的結果。 |
| 20 |
IntSupplier |
無參數,返回一個int類型結果。 |
| 21 |
IntToDoubleFunction |
接受一個int類型輸入,返回一個double類型結果 。 |
| 22 |
IntToLongFunction |
接受一個int類型輸入,返回一個long類型結果。 |
| 23 |
IntUnaryOperator |
接受一個參數同為類型int,傳回值類型也為int 。 |
| 24 |
LongBinaryOperator |
接受兩個參數同為類型long,傳回值類型也為long。 |
| 25 |
LongConsumer |
接受一個long類型的輸入參數,無傳回值。 |
| 26 |
LongFunction |
接受一個long類型輸入參數,返回一個結果。 |
| 27 |
LongPredicate |
R接受一個long輸入參數,返回一個布爾實值型別結果。 |
| 28 |
LongSupplier |
無參數,返回一個結果long類型的值。 |
| 29 |
LongToDoubleFunction |
接受一個long類型輸入,返回一個double類型結果。 |
| 30 |
LongToIntFunction |
接受一個long類型輸入,返回一個int類型結果。 |
| 31 |
LongUnaryOperator |
接受一個參數同為類型long,傳回值類型也為long。 |
| 32 |
ObjDoubleConsumer |
接受一個object類型和一個double類型的輸入參數,無傳回值。 |
| 33 |
ObjIntConsumer |
接受一個object類型和一個int類型的輸入參數,無傳回值。 |
| 34 |
ObjLongConsumer |
接受一個object類型和一個long類型的輸入參數,無傳回值。 |
| 35 |
Predicate |
接受一個輸入參數,返回一個布爾值結果。 |
| 36 |
Supplier |
無參數,返回一個結果。 |
| 37 |
ToDoubleBiFunction |
接受兩個輸入參數,返回一個double類型結果 |
| 38 |
ToDoubleFunction |
接受一個輸入參數,返回一個double類型結果 |
| 39 |
ToIntBiFunction |
接受兩個輸入參數,返回一個int類型結果。 |
| 40 |
ToIntFunction |
接受一個輸入參數,返回一個int類型結果。 |
| 41 |
ToLongBiFunction |
接受兩個輸入參數,返回一個long類型結果。 |
| 42 |
ToLongFunction |
接受一個輸入參數,返回一個long類型結果。 |
| 43 |
UnaryOperator |
接受一個參數為類型T,傳回值類型也為T。 |