Skip to content
閲覧中:
2

Java Gold 向け 関数型インターフェースまとめ

Java Gold では
「どのメソッド名か」「引数の数」「戻り値」
を問われることが非常に多いです。


まずは分類で覚える

種類 役割 戻り値
Supplier 値を取り出す あり
Consumer 値を受け取るだけ なし(void)
Predicate 条件判定 boolean
Function 変換する 別型
Operator 同じ型で計算 同じ型

一覧(覚えやすい版)

インターフェース 意味 メソッド イメージ
Supplier<T> 供給する get() 値を取り出す
Consumer<T> 消費する accept(T) 値を受け取る
BiConsumer<T,U> 2つ受け取る accept(T,U) 2個受け取る
Predicate<T> 条件判定 test(T) 条件チェック
BiPredicate<T,U> 2条件判定 test(T,U) 2個で判定
Function<T,R> 型変換 apply(T) 変換する
BiFunction<T,U,R> 2入力変換 apply(T,U) 2つ使って変換
UnaryOperator<T> 同型変換 apply(T) 1個加工
BinaryOperator<T> 同型2項演算 apply(T,T) 2個計算
Runnable 実行のみ run() 実行
Callable<V> 戻り値あり実行 call() 実行+戻り値

Consumer は accept

Java
Consumer<String> c = s -> System.out.println(s);

c.accept("hello");

覚え方

Consumer は「受け取る」ので

Text Only
accept = 受け入れる

Predicate は test

Java
Predicate<Integer> p = n -> n > 0;

System.out.println(p.test(10));

覚え方

条件判定なので

Text Only
test = テストする

Function / Operator は apply

Java
Function<String, Integer> f = s -> s.length();

System.out.println(f.apply("abc"));

覚え方

Text Only
apply = 適用する

Supplier は get

Java
Supplier<Double> s = () -> Math.random();

System.out.println(s.get());

覚え方

Text Only
get = 取得する

Runnable と Callable の違い

Runnable Callable
戻り値 なし あり
例外 throws 不可
メソッド run() call()

Operator の正体

UnaryOperator

Java
UnaryOperator<T>

は実質:

Java
Function<T, T>

と同じ。

つまり:

Text Only
引数と戻り値が同じ型

UnaryOperator の例

Java
UnaryOperator<Integer> op = n -> n * 2;

System.out.println(op.apply(10));

BinaryOperator の例

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

System.out.println(op.apply(3, 5));

Bi が付く意味

名前 引数
Consumer 1個
BiConsumer 2個
Function 1個
BiFunction 2個
Predicate 1個
BiPredicate 2個

Java Gold 暗記用チートシート

値を返す系

IF メソッド
Supplier get()
Function apply()
UnaryOperator apply()
BinaryOperator apply()
Callable call()

戻り値なし系

IF メソッド
Consumer accept()
BiConsumer accept()
Runnable run()

boolean系

IF メソッド
Predicate test()
BiPredicate test()

試験によく出る問題

Q1

Java
Predicate<String> p = s -> s.isEmpty();

p.???

答え

Java
p.test("")

Q2

Java
Consumer<Integer> c = n -> System.out.println(n);

c.???

答え

Java
c.accept(10)

Q3

Java
Supplier<String> s = () -> "abc";

s.???

答え

Java
s.get()

最短暗記法

キーワード メソッド
供給 get
消費 accept
判定 test
変換 apply
実行 run
実行+戻り値 call

超重要ポイント

覚える順番

Text Only
1. Supplier → get
2. Consumer → accept
3. Predicate → test
4. Function → apply

まずこの4つを覚えると、
Operator や Bi系も自然に覚えやすくなります。