JAVA/JAVA8

UnaryOperator & BinaryOperator Functional Interface

최-코드 2024. 8. 13. 16:17
  • 두 함수형 인터페이스 모두 Function 인터페이스를 확장한 것으로, 입력과 출력이 동일한 타입일 때 사용된다.
  • UnaryOperator의 경우 입력 인자를 하나만 받는 것이고, BinaryOperator의 경우 입력 인자를 두 개 받는다.
  • 따라서 기본 형태는 '~Operator<타입>'와 같다.
  • BinaryOperator의 경우 maxBy와 minBy라는 메소드가 추가된다. 이는 두 개의 인자를 비교하여 각 메소드에 맞게 출력해주는 함수이다. 해당 메소드의 인자로는 Comparator이다.
public class BinaryOperatorExample {
    public static void main(String[] args) {
        BinaryOperator<Integer> binaryOperator = (a, b) -> a*b;

        int result = binaryOperator.apply(10,20);
        System.out.println(result);

        System.out.println("--------------------");

        maxByExample();
    }

    public static void maxByExample(){
        Comparator<Integer> comparator = (a,b)-> a.compareTo(b);

        BinaryOperator<Integer> maxBy = BinaryOperator.maxBy(comparator);

        int maxValue = maxBy.apply(4,5);
        System.out.println(maxValue);
    }
}