자바 람다식 Lambda expression
🌞 람다식이란?
익명함수를 간결하게 표현한 것
컬렉션이나 스트림API를 처리할 때나,
간단한 작업을 한줄 코드로 처리할때 사용된다.
✔등장배경
자바는 객체지향형 프로그래밍 oop 을 지향한다.
하지만 자바8부터 oop의 한계점을 극복하기 위해 함수형 프로그래밍 개념을 도입했다.
✔ oop의 한계점.
반복 코드가 많다
병렬 처리가 어렵다
데이터 흐름을 추상화하기 어렵다 등
✔ 자바 람다식의 기본형태
(입력값) -> {처리내용}
(x, y) -> x + y // "x와 y를 받아서 더한 결과를 줘"
✔ 자바 람다식 사용방법
람다식을 자바에서 사용하려면 함수형 인터페이스가 필요하다.
함수형 인터페이스는 단 하나의 추상메서드만 가지고 있는 인터페이스다.
@FunctionalInterface
public interface MyFunctionalInterface {
void something();
}
package ch01;
/**
* 람다식을 사용하기 위해
* 인터페이스 안에는
* 단 하나의 추상메서드만 존재해야 한다.
*/
@FunctionalInterface
public interface MathOperation {
int operate(int x, int y);
//double operates(int x, int y);
}
package ch01;
/**
* 🌞함수형 인터페이스를 선언하면
* 미리 식을 만들어 쓰는 것이 아니라
* 사용할 때
* 즉시 식을 만들어 활용할 수 있다
*
* 정리해보면
*
* 람다식과 함수형 프로그래밍은
* 객체 지향 프로그래밍 상태와 동작을 함께 관리하고
* 구조적으로 코드를 작성하는데 강점이 있다
*
* 람다식과 함수형 프로그래밍은
* 간단한 동작을 간결하게 표현하며
* 함수 자체를 유연하게 재사용할 수 있다
*/
public class MathOperationTest {
public static void main(String[] args) {
//각 연산을 람다식으로 정의
MathOperation add = (x, y) -> x + y;
//Calc add = ?
//Calc 인터페이스에는 추상메서드가 여러개라서 람다식이 안만들어진다.
MathOperation sub = (x, y) -> x - y;
MathOperation mul = (x, y) -> x * y;
MathOperation div = (x, y) -> {
if (y == 0) {
throw new IllegalArgumentException("Cannot divide by zero");
}
return x / y;
};
System.out.println("10 + 5 = " + add.operate(10, 5));
System.out.println("10 - 5 = " + sub.operate(10, 5));
System.out.println("10 * 5 = " + mul.operate(10, 5));
System.out.println("10 / 5 = " + div.operate(10, 5));
new Thread();
}//main
}//MathOperationTest
'Java' 카테고리의 다른 글
| HTTP) HTTP 통신 개요 (5) | 2025.06.13 |
|---|---|
| java IO) 로또 생성기 + 출력스트림 (0) | 2025.06.03 |
| java IO) Buffered Stream 보조 기반 스트림 (0) | 2025.05.29 |
| java IO) - 문자 기반 스트림 (1) | 2025.05.29 |
| java) java IO - 파일 입력스트림 & 출력스트림 예제 (1) | 2025.05.28 |