Java - UnaryOperator 예제

Java 8에서 도입된 UnaryOperator의 사용 방법 및 예제를 소개합니다.

1. UnaryOperator

UnaryOperator는 Type T의 인자 하나를 받고, 동일한 Type T 객체를 리턴하는 함수형 인터페이스입니다.

public interface UnaryOperator<T> extends Function<T, T> {

}

UnaryOperator는 Function을 상속하며, apply()를 호출하여 어떤 작업을 수행할 수 있습니다.

public interface Function<T, R> {
    R apply(T t);
}

2. UnaryOperator 사용 방법

UnaryOperator는 Lambda 표현식으로 구현할 수 있습니다.

UnaryOperator 객체의 apply() 호출과 함께 인자를 전달하면 구현 내용이 수행되며 인자와 같은 타입의 객체가 리턴됩니다.

import java.util.function.UnaryOperator;

public class UnaryOperatorExample1 {

    public static void main(String[] args) {

        UnaryOperator<Integer> unaryOperator1 = n -> n * n;
        Integer result = unaryOperator1.apply(10);
        System.out.println(result);

        UnaryOperator<Boolean> unaryOperator2 = b -> !b;
        Boolean result2 = unaryOperator2.apply(true);
        System.out.println(result2);
    }
}

Output:

100
false

3. andThen()으로 다수의 UnaryOperator 연결

Function 처럼 andThen()으로 여러 UnaryOperator 객체들을 연결하여 연속적으로 호출할 수 있습니다.

아래 코드에서 func1.andThen(func2) 처럼 두개의 함수가 연결되었는데, apply() 호출 시, func1의 결과는 func2의 인자로 전달되고, func2의 결과가 리턴됩니다.

import java.util.function.UnaryOperator;

public class UnaryOperatorExample2 {

    public static void main(String[] args) {

        UnaryOperator<Integer> func1 = n -> n * 2;
        UnaryOperator<Integer> func2 = n -> n * 3;

        Integer result = func1.andThen(func2).apply(10);

        System.out.println(result);
    }
}

Output:

60
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha