🙆‍♀️

【Java Gold】関数型インターフェース

2022/09/01に公開

Java Gold 勉強用にまとめてます。
※随時更新

No インターフェース名 メソッド 操作 引数 返却
1 Function<T,R> R apply(T t) 変換 T R
2 BiFunction<T,U,R> R apply(T t, U u) 変換 T, U R
3 UnaryOperator<T> T apply(T t) 単項演算 T T
4 BinaryOperator<T> T apply(T t1, T t2) 単項演算 T, T T
5 Consumer<T> void accept(T t) 消費 T
6 BiConsumer<T,U> void accept(T t, U u) 消費 T, U
7 Supplier<T> T get() 供給 T
8 Predicate<T> boolean test(T t) 評価 T boolean
9 BiPredicate<T,U> boolean test(T t, U u) 評価 T, U boolean

Function

実装例
public static void main(String[] args) {
    // 例:Integer -> String 変換
    Function<Integer, String> function = f -> Integer.toString(f);
    String f = function.apply(1111);
    System.out.println(f);
}
実施結果
1111

BiFunction

実装例
public static void main(String[] args) {
    // 例:Integer -> String 変換
    BiFunction<Integer, Integer, String> biFunction = (depth, width) -> Integer.toString(depth * width);
    String area = biFunction.apply(2, 3);
    System.out.println(area + "㎠");
}
実施結果
6

UnaryOperator

実装例
public static void main(String[] args) {
    // 例:文字結合
    UnaryOperator<String> unaryOperator = string -> "No." + string;
    String no = unaryOperator.apply("1");
    System.out.println(no);
}
実施結果
No.1

BinaryOperator

実装例
public static void main(String[] args) {
    // 例:足し算
    BinaryOperator<Integer> binaryOperator = (b1, b2) -> b1 + b2;
    int sum = binaryOperator.apply(1, 2);
    System.out.println(sum);
}
実施結果
3

Consumer

実装例
public static void main(String[] args) {
    // 消費(Consumerはvoidメソッド)
    Consumer<String> consumer = string -> System.out.println("No. " + string);
    consumer.accept("1");
}
実施結果
No. 1

BiConsumer

実装例
public static void main(String[] args) {
    // 消費(BiConsumerはvoidメソッド)
    BiConsumer<String, String> biConsumer = (s1, s2) -> System.out.println("No. " + s1 + s2);
    biConsumer.accept("1", "2");
}
実施結果
No. 12

Supplier

実装例
public static void main(String[] args) {
    // 供給
    Supplier<String> supplier = () -> "test";
    System.out.println(supplier.get());
}
実施結果
test

Predicate

実装例
public static void main(String[] args) {
    // 評価
    Predicate<String> predicate = string -> string.isEmpty();
    System.out.println(predicate.test(""));
}
実施結果
true

BiPredicate

実装例
public static void main(String[] args) {
    // 評価
    BiPredicate<String, String> biPredicate = (s1, s2) -> s1.equals(s2);
    System.out.println(biPredicate.test("1", "1"));
}
実施結果
true

Discussion