BiFunction 정리

yshjft·2022년 5월 9일
0

BiFunction

public interface BiFuncton<T, U, R> {
	R apply(T t, U u);
}

2개의 인자를 받고 1개의 객체를 리턴하는 함수형 인터페이스

예시

import java.util.function.BiFunction;

public class BiFunctionExample {

    public static void main(String[] args) {

        BiFunction<String, String, String> func1 = (s1, s2) -> {
            String s3 = s1 + s2;
            return s3;
        };
        String result = func1.apply("Hello", "World");
        System.out.println(result);

        BiFunction<Integer, Integer, Double> func2 = (a1, a2) -> Double.valueOf(a1 + a2);
        Double sum = func2.apply(10, 100);
        System.out.println(sum);
    }
}

참고) enum에서 bifunction을 이용하기

public enum Operator {
    PLUS("+", (num1, num2) -> num1 + num2),
    MINUS("-", (num1, num2) -> num1 - num2),
    MULTIPLY("*", (num1, num2) -> num1 * num2),
    DIVIDE("/", (num1, num2) -> num1 / num2);

    private String symbol;
    private BiFunction<Integer, Integer, Integer> expression;

    Operator(String symbol, BiFunction<Integer, Integer, Integer> expression) {
        this.symbol = symbol;
        this.expression = expression;
    }

    public int calculate(int num1, int num2) {
        return expression.apply(num1, num2);
    }
}

TriFunction

public interface TriFuncton<A, B, C, R> {
	R apply(A a, B b, C c);
}

3개의 인자를 받고 1개의 객체를 리턴하는 함수형 인터페이스

import java.util.function.TriFunction;

public class TriFunctionExample {

    public static void main(String[] args) {

        BiFunction<String, String, String, String> func1 = (s1, s2, s3) -> {
            String s4 = s1 + s2 + s3;
            return s4;
        };
        String result = func1.apply("Hello", "World", "!");
        System.out.println(result);
    }
}
profile
꾸준히 나아가자 🐢

0개의 댓글