java.util.functionとは
色々な引数・返り値を持つ関数のinterfaceを提供する標準パッケージです。
まとめ表
主要なインターフェース
| インターフェース名 |
引数 |
返り値 |
説明 |
| Runnable |
なし |
なし |
java.lang 比較対象 |
| Supplier<T> |
なし |
T |
変数のgetterとして使える |
| Consumer<T> |
T |
なし |
変数のsetterとして使える |
| Function<T, R> |
T |
R |
本物の「関数」 |
| Predicate<T> |
T |
boolean |
Tから予測する |
SupplierとConsumerは混同しやすいので注意!
Supplier→Supply→供給
Consumer→Consume→消費
と覚えておくとよさそう
Suppiler系列
| インターフェース名 |
引数 |
返り値 |
| BooleanSupplier |
なし |
boolean |
| DoubleSupplier |
なし |
double |
| IntSupplier |
なし |
int |
| LongSupplier |
なし |
long |
Consumer系列
| インターフェース名 |
引数 |
返り値 |
| BiConsumer<T, U> |
T, U |
なし |
| DoubleConsumer |
double |
なし |
| IntConsumer |
int |
なし |
| LongConsumer |
long |
なし |
| ObjDoubleConsumer<T> |
T, double |
なし |
| ObjIntConsumer<T> |
T, int |
なし |
| ObjLongConsumer<T> |
T, long |
なし |
ObjConsumerの使い道がよくわからない
Function系列
| インターフェース名 |
引数 |
返り値 |
| BiFunction<T, U, R> |
T, U |
R |
| DoubleFunction<R> |
double |
R |
| DoubleToIntFunction |
double |
int |
| DoubleToLongFunction |
double |
long |
| IntFunction<R> |
int |
R |
| IntToDoubleFunction |
int |
double |
| IntToLongFunction |
int |
long |
| LongFunction<R> |
long |
R |
| LongToIntFunction |
long |
int |
| LongToDoubleFunction |
long |
double |
| ToDoubleBiFunction<T, U> |
T, U |
double |
| ToIntBiFunction<T, U> |
T, U |
int |
| ToLongBiFunction<T, U> |
T, U |
long |
| ToDoubleFunction<T> |
T |
double |
| ToIntFunction<T> |
T |
int |
| ToLongFunction<T> |
T |
long |
Function多すぎ
Predicate系列
| インターフェース名 |
引数 |
返り値 |
| BiPredicate<T, U> |
T, U |
boolean |
| DoublePredicate |
double |
boolean |
| IntPredicate |
int |
boolean |
| LongPredicate |
long |
boolean |
UnaryOperator系列
Functionの子でFunction<T,T>と同じ
| インターフェース名 |
引数 |
返り値 |
| UranyOperator<T> |
T |
T |
| DoubleUranyOperator<T> |
double |
double |
| IntUranOperator<T> |
int |
int |
| LongUranyOperator<T> |
long |
long |
BinaryOperator系列
BiFunctionの子でBiFunction<T,T,T>と同じ
| インターフェース名 |
引数 |
返り値 |
| BinaryOperator<T> |
T, T |
T |
| DoubleBinaryOperator<T> |
double, double |
double |
| IntBinaryOperator<T> |
int, int |
int |
| LongBinaryOperator<T> |
long, long |
long |
まとめ
java.util.functionにはSupplier、Consumerなどの他ラッパー型(int->Integer)などを用いないためのインターフェースが沢山あります。
ぜひ使ってみてください。正直上4つしか使わない
とても疲れたのでいいねしてくださると幸いです。