社会人のメモ帳

忘れたくないことアレコレ

【第2週】第2章:関数型インタフェースとラムダ式を理解する【Java Gold合格へ向けて】

PREV | LIST | NEXT

Java Gold合格へ向けて

黒本の第2章は『関数型インタフェースとラムダ式』、これをさらに細分化すると下記の3つに分かれる(黒本より抜粋)。

  1. java.util.functionパッケージの関数型インタフェース
  2. 関数型インタフェースの定義と記述
  3. ラムダ式の利用

java.util.functionパッケージの関数型インタフェースの問題は、下記の3つの観点で、用意されているインタフェースを覚える必要がある。

  1. インタフェース…黒本に記載されている主なインタフェースは11個
  2. 戻り値型…インタフェースごとに決まっている
  3. メソッド…インタフェースごとに決まっている

黒本に記載されているインタフェースは11個なので、それ全部を覚えられれば対策は完了かと思われる。とはいえConsumerとBiConsumer、PredicateとBiPredicate、BiFunctionとBiFunctionのように引数が増えるだけのものや、第3章の並列処理で使うRunnableがあるため、最低限覚えるべきは赤字で示した5個だと考える。そのためこの一週間ではこの6個を集中的に覚えることにする。

インタフェース 英語の意味 戻り値型 メソッド
Supplier 提供者 get()
Consumer 消費者 void accept(T)
BiConsumer<T, U> 消費者 void accept(T, U)
Predicate 断定する boolean test(T)
BiPredicate<T, U> 断定する boolean test(T, U)
Function<T, R> 関数 R apply(T)
BiFunction<T, U, R> 関数 R apply(T, U)
UnaryOperator 単項演算子 apply(T)
BinaryOperator 二項演算子 apply(T, T)
Runnable 実行可能 void run()
Callable 呼び出し可能 V call()

とはいえ、上記の単語を覚えるだけでは意味がない。その使い方、ジェネリクスまで覚える必要がある。その辺りは関数型インタフェースの定義と記述ラムダ式の利用で理解を進めていく。それらについてはまた記事を分けて説明したい。

PREV | LIST | NEXT