람다식
개념 : 자바에서 람다식(Lambda expression)은 함수형 프로그래밍 개념을 도입한 것으로, 익명 함수(이름이 없는 함수)를 간결하게 표현할 수 있게 해 줍니다.
람다식은 자바 버전 8(2014년 출시)부터 사용할 수 있습니다. 추가로 자바 8은 함수형 프로그래밍을 지원하기 위한 여러 기능을 함께 도입했습니다. 즉, 람다식을 사용하면 코드가 간결해지고, 특히 컬렉션이나 스트림 API 을 처리할 때 매우 유용합니다.
람다식은 주로 간단한 작업을 한 줄의 코드로 처리할 때 많이 사용하며 예를 들어, 리스트의 요소를 하나씩 처리할 때 기존 방식보다 훨씬 간단하게 표현할 수 있습니다.(스트림 API 학습 후 알아 봅시다)
함수형 프로그래밍 (Functional Programming
람다식의 기본 문법
람다식은 함수 이름 x
(매개변수) -> { 코드 블록 }
람다식을 사용하기 위해 자바에서는 함수형 인터페이스(Functional Interface)가 필요합니다. 함수형 인터페이스는 단 하나의 추상 메서드만 가지고 있는 인터페이스를 말합니다. 대표적인 예로는 Runnable, Callable, Comparator, Consumer 등이 있습니다.
함수형 인터페이스 예시
@FunctionalInterface public interface MyFunctionalInterface { void doSomething(); }
: 추상 메서드만 단 하나만 가지므로 람다식을 사용하여 구현할 수 있다.
람다식을 사용할려면 먼저 함수형 인터페이스(Functional Interface)가 존재 해야 한다.
int add(int x, int y){
return x + y;
}
위 코드를 람다 식으로 변경한다면 코드는 어떻게 될까?
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
(int x, int y) -> {return x+y;}
시나리오 코드1
package ch01;
// 람다식을 사용하기 위해서는
// 함수형 인터페이스가 먼저 만들어져 있어야 한다.
@FunctionalInterface
interface MathOperation {
int operate(int x, int y);
//int perate1(int x, int y);
}
public class MainTest {
public static void main(String[] args) {
// 핵심 !
// 함수형 인터페이스를 활용해서 내가 필요한 식을(람다 형태)을 직접 정의한다.
// 식을 만들었다면 필요한 시점에 간결하게 호출해서 사용한다.
// 식을 만들어 보자.
MathOperation add = (int x, int y) -> {return x + y;};
MathOperation subtract = (int x, int y) -> {return x - y;};
MathOperation divide = (int x, int y) -> {return x / y;};
MathOperation multiply = (int x, int y) -> {return x * y;};
// 람다식을 호출하여 결과를 출력해 보자.
System.out.println("10 + 10 = " + add.operate(10, 10));
System.out.println("10 - 10 = " + subtract.operate(10, 10));
System.out.println("10 / 10 = " + divide.operate(10, 10));
System.out.println("10 * 10 = " + multiply.operate(10, 10));
}
}
시나리오 코드2
package ch01;
// 람다식을 사용하기 위해서는
// 함수형 인터페이스가 먼저 만들어 져 있어야 한다.
// 추상메서드 두개 넣을 수 없다 - > 어노테이션 @FunctionalInterface 가 있기 때문에
@FunctionalInterface
interface MathOperation{
int operate(int x, int y);
// int operate(int x, int y);
}
public class MainTest {
public static void main(String[] args) {
// 핵심 !
// 함수형 인터페이스를 활용해서 내가 필요한 식을(람다 형태)을 직접 정의한다.
// 식을 만들었다면 필요한 시점에 간결하게 호출해서 사용한다.
// 식을 만들어 보자.
MathOperation add = (int x, int y) -> x + y;
MathOperation subtract = (int x, int y) -> x - y;
MathOperation divide = (int x, int y) -> {
if(y == 0) {
System.out.println(" Error : 어떤 수를 0으로 나눌 수 없음!! ");
return 0;
} else {
return x / y;
}
};
MathOperation multiply = (int x, int y) -> x * y;
// 람다식을 호출하여 결과를 출력해 보자.
System.out.println("10 + 10 = " + add.operate(10, 10));
System.out.println("10 - 10 = " + subtract.operate(10, 10));
System.out.println("10 / 10 = " + divide.operate(10, 10));
System.out.println("10 * 10 = " + multiply.operate(10, 10));
}
}
즉, 각 상황에 따라 장점이 다르므로, 어떤 작업을 수행하느냐에 따라 적합한 방식을 선택하는 것이 중요합니다.
JAVA - 팩토리 패턴 (1) | 2024.09.26 |
---|---|
S.O.L.I.D 원칙 (1) | 2024.09.25 |
java - StartsWith(), endsWith() 알아보기 (String 활용 함수) (0) | 2024.05.24 |
큐(Queue) - 2 (배열을 활용해서 순환구조 만들어보기) (0) | 2024.05.09 |
큐(Queue) - 1 (개념과 선형구조 만들어보기) (0) | 2024.05.09 |