앞선 아티클에서 Operator Functional Interface의 여러 종류를 살펴보았습니다.
패턴 자체는 반복되고 있으므로 혹시라도 이해가 가지 않으신다면(중간에 오랜 기간 공부를 멈춰서 잊으셨다면) 아래 람다식 기본 개념을 다시 잘 숙지하시기 바랍니다. 람다식의 가장 기본 원리를 다시 상기하고 난 이후라면 반복되는 응용 패턴이기 때문에 이해하는데 크게 어려움이 없을 것입니다.
일단 여기서는 Operator Functional Interface에서 설명한 인터페이스 중, IntBinaryOperator를 예시로 예제 코드를 살펴보겠습니다. 이 인터페이스의 경우 int applyAsInt(int, int)라는 추상 메서드를 갖고 있고, 설명한 것처럼 int 파라미터를 두 개 받아서 동일한 int 결과 값을 리턴하는 형태를 가지고 있습니다. 이제 이를 기반으로 람다식을 작성한다고 가정하면, 아래와 같은 형태가 되겠죠? 기본적인 형태이지만 중요한 람다식 형태이므로 잘 숙지하시기를 바랍니다.
IntBinaryOperator operator = (a, b) -> { // ....; return int값; }
그럼 예제 코드를 아래와 같이 작성하고 살펴보도록 하겠습니다.
import java.util.function.IntBinaryOperator;
public class ExampleMain {
private static int[] scores = { 99, 50, 82 };
public static int maxOrMin( IntBinaryOperator operator ) {
int result = scores[0];
for(int score : scores) {
result = operator.applyAsInt(result, score);
}
return result;
}
public static void main(String[] args) {
// 최댓값
int max = maxOrMin(
(a, b) -> {
if(a >= b) {
return a;
} else {
return b;
}
}
);
System.out.println("최댓값 : " + max);
// 최솟값
int min = maxOrMin(
(a, b) -> {
if(a <= b) {
return a;
} else {
return b;
}
}
);
System.out.println("최솟값 : " + min);
}
}
/* 출력
최댓값 : 99
최솟값 : 50
*/
'Programming > JAVA' 카테고리의 다른 글
람다식(4) - 표준 API의 함수적 인터페이스 7 : 디폴트 메서드 andThen(), compose() 1 (0) | 2023.07.17 |
---|---|
람다식(4) - 표준 API의 함수적 인터페이스 6 : Predicate Functional Interface (0) | 2023.07.11 |
람다식(4) - 표준 API의 함수적 인터페이스 5 : Operator Functional Interface 1 (0) | 2023.06.18 |
람다식(4) - 표준 API의 함수적 인터페이스 4 : Function Functional Interface 2 (0) | 2023.06.14 |
람다식(4) - 표준 API의 함수적 인터페이스 4 : Function Functional Interface 1 (0) | 2023.06.10 |