Java8関数型インターフェース チートシート

  • 30
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Java8でLambdaを書く際によく使用する関数型インターフェースのほとんどは、java.util.functionに用意されています。

しかし、どのシチュエーションで、そのインターフェースを使えば良いか最初はわかりにくいです。
なので、引数の型や戻り値などから使うべきインターフェースを、逆引きで一覧にしてみました。

  • Function系

引数が1つまたは2つあり、戻り値があるパターン

1つ目の引数の型 2つ目の引数の型 戻り値の型 インターフェース名 備考
指定 - 指定 Function
Integer - 指定 IntFunction
Long - 指定 LongFunction
Double - 指定 DoubleFunction
指定 指定 指定 BiFunction
指定 - Integer ToIntFunction
指定 - Long ToLongFunction
指定 - Double ToDoubleFunction
指定 指定 Integer ToIntBiFunction
指定 指定 Long ToLongBiFunction
指定 指定 Double ToDoubleBiFunction
Integer - Long IntToLongFunction
Integer - Double IntToDoubleFunction
Long - Integer LongToIntFunction
Long - Double LongToDoubleunction
Double - Integer DoubleToIntFunction
Double - Long DoubleToIntFunction
  • Consumer系

引数が1つまたは2つあり、戻り値がないパターン

1つ目の引数の型 2つ目の引数の型 戻り値の型 インターフェース名 備考
指定 - void Consumer
Integer - void IntConsumer
Long - void LongConsumer
Double - void DoubleConsumer
指定 指定 void BiConsumer
指定 Integer void ObjIntConsumer
指定 Long void ObjLongConsumer
指定 Double void ObjDoubleConsumer
  • Supplier系

引数が無く、戻り値があるパターン

1つ目の引数の型 2つ目の引数の型 戻り値の型 インターフェース名 備考
- - 指定 Supplier
- - Integer IntSupplier
- - Long LongSupplier
- - Double DoubleSupplier
- - boolean BooleanSupplier
  • Predicate系

引数が1つまたは2つあり、戻り値がbolean型のパターン

1つ目の引数の型 2つ目の引数の型 戻り値の型 インターフェース名 備考
指定 - boolean Predicate
指定 指定 boolean BiPredicate
Integer - boolean IntPredicate
Long - boolean LongPredicate
Double - boolean DoublePredicate
  • UnaryOperator系

1つ目の引数と戻り値の型が同じパターン

1つ目の引数の型 2つ目の引数の型 戻り値の型 インターフェース名 備考
指定 - 1つ目の引数と同じ UnaryOperator
Integer - Integer IntUnaryOperator
Long - Long LongUnaryOperator
Double - Double DoubleUnaryOperator