Java Gold SE11対策:Javaラムダ式で必須!関数型インタフェース9選を徹底整理

アイキャッチ画像

Java Gold SE11では、ラムダ式と密接に関係する「関数型インタフェース」が非常に重要なトピックです。
Java Silverでも基本的な Function, Predicate, Consumer, Supplier などが登場しましたが、
Goldレベルではさらに応用的なインタフェースの理解が問われます。

本記事では、試験対策として必要な代表的インタフェースの一覧に加え、特に出題頻度の高い応用系インタフェース(例:UnaryOperator, BinaryOperator, BiFunction など)も含めて解説します。

1. 関数型インタフェースとは?

関数型インタフェース(Functional Interface)とは、抽象メソッドが1つだけ定義されたインタフェースです。

@FunctionalInterface

public interface MyFunc {

    int execute(String s);

}

@FunctionalInterface アノテーションは任意ですが、付けておくと「抽象メソッドが2つ以上あるとエラー」になるので、ミスを防げます。

2. 試験で出る代表的な関数型インタフェース

インタフェース引数戻り値説明
Function<T, R>1つR型T型をR型に変換(mapなど)
Predicate1つboolean条件判定(filterなど)
Consumer1つvoid値を使って副作用処理(forEachなど)
SupplierなしT型値を提供(遅延評価)
UnaryOperator1つT型T型→T型(Function<T,T>の特化)
BinaryOperator2つT型T型×T型→T型(BiFunction<T,T,T>の特化)
BiFunction<T,U,R>2つR型TとUを受け取り、Rを返す
BiPredicate<T,U>2つbooleanTとUの条件判定
BiConsumer<T,U>2つvoidTとUを使って処理を行う

すべて java.util.function パッケージに含まれています。

3. 使用例(応用系も含む)

// UnaryOperator

UnaryOperator<String> upper = s -> s.toUpperCase();

System.out.println(upper.apply(“java”)); // JAVA

// BinaryOperator

BinaryOperator<Integer> add = (a, b) -> a + b;

System.out.println(add.apply(3, 5)); // 8

// BiFunction

BiFunction<String, Integer, String> repeat = (s, n) -> s.repeat(n);

System.out.println(repeat.apply(“hi”, 3)); // hihihi

// BiPredicate

BiPredicate<String, Integer> longerThan = (s, len) -> s.length() > len;

System.out.println(longerThan.test(“hello”, 3)); // true

// BiConsumer

BiConsumer<String, Integer> printer = (s, n) -> System.out.println(s + “:” + n);

printer.accept(“score”, 100);

4. 覚えるコツと見分け方

キー内容
引数なしSupplier
引数1つ(戻り値あり)Function
引数1つ(boolean)Predicate
引数1つ(副作用)Consumer
引数2つ、戻り値ありBiFunction
引数2つ、booleanBiPredicate
引数2つ、副作用BiConsumer
Function<T,T>の特化UnaryOperator
BiFunction<T,T,T>の特化BinaryOperator

5. 試験対策ポイント

  • ラムダ式の文脈で「どの関数型インタフェースに一致するか」を問う設問が出る
  • メソッド名(apply, test, accept, get)で見分ける問題が頻出
  • <T, R> や <T, U, R> などのジェネリクスの意味を把握しておくこと
  • default や static メソッドがあっても、抽象メソッドが1つならOK

@FunctionalInterface

interface Task {

    void run();

    default void log() {}

    static void help() {}

}

6. まとめチェックリスト

抽象メソッドが1つ → ラムダ式OK
Java Goldでは Bi系や Operator系のインタフェースも出題対象
apply/test/accept/get などメソッド名の違いに注意
引数の数・型と戻り値で適切なインタフェースを選ぶ

おわりに

Java Gold SE11における関数型インタフェースは、ただの前提知識ではなく、StreamやOptional、ラムダ式の動作理解に直結します。
基本4種だけでなく、Bi系・Operator系の使い分けをしっかり整理しておくことで、試験本番でも迷わず選択肢を判断できるようになります。
ぜひ繰り返し確認し、実装でも活用してみてください!