SeouliteLab

[Java/자바] UnaryOperator와 andThen() 메서드 활용 예제 본문

프로그래밍

[Java/자바] UnaryOperator와 andThen() 메서드 활용 예제

Seoulite Lab 2024. 3. 13. 08:26

UnaryOperator란?

UnaryOperator는 Java에서 제공하는 함수형 인터페이스 중 하나로, 하나의 입력값을 받아서 하나의 결과값을 반환하는 함수를 표현합니다. 이 인터페이스는 주로 입력값과 결과값의 형태가 같을 때 사용됩니다.

andThen() 메서드

andThen() 메서드는 UnaryOperator 인터페이스에서 제공하는 기능 중 하나입니다. 이 메서드는 하나의 UnaryOperator 함수를 실행한 후, 그 결과를 다른 UnaryOperator 함수에 입력으로 제공할 수 있도록 연결해줍니다.

예제 1: 숫자에 5를 더하고 제곱하는 연산

import java.util.function.UnaryOperator;

UnaryOperator<Integer> addFive = num -> num + 5;
UnaryOperator<Integer> square = num -> num * num;

UnaryOperator<Integer> addFiveAndSquare = addFive.andThen(square);

int result = addFiveAndSquare.apply(3);
System.out.println("Result: " + result); // 출력: 64

이 예제에서는 먼저 숫자에 5를 더하고 그 결과를 제곱하는 연산을 수행합니다.

예제 2: 문자열을 대문자로 변환하고 공백을 제거하는 연산

import java.util.function.UnaryOperator;

UnaryOperator<String> toUpperCase = str -> str.toUpperCase();
UnaryOperator<String> removeSpaces = str -> str.replaceAll("\\s", "");

UnaryOperator<String> processString = toUpperCase.andThen(removeSpaces);

String result = processString.apply("hello world");
System.out.println("Result: " + result); // 출력: HELLOWORLD

이 예제에서는 문자열을 먼저 대문자로 변환한 후, 그 결과에서 공백을 제거하는 연산을 수행합니다.

예제 3: 숫자를 절대값으로 변환하고 2배로 만드는 연산

import java.util.function.UnaryOperator;

UnaryOperator<Integer> absolute = num -> num >= 0 ? num : -num;
UnaryOperator<Integer> doubleNumber = num -> num * 2;

UnaryOperator<Integer> absoluteAndDouble = absolute.andThen(doubleNumber);

int result = absoluteAndDouble.apply(-3);
System.out.println("Result: " + result); // 출력: 6

이 예제에서는 먼저 숫자를 절대값으로 변환한 후, 그 결과를 2배로 만드는 연산을 수행합니다.