Notice
Recent Posts
Recent Comments
Link
컴퓨터는 잘못이 없다..
[JAVA]람다식 본문
Contents
접기
#핵심 요약
- 람다 표현식(Lambda Expression)
- 메소드 대신 하나의 식으로 표현하는 것
- 익명 함수 (Anonymous function)
- 메소드 : 반환타입 메소드이름 (매개변수,....) {실행문...} ex. public int sum(int x, int y) { return x+y; }
- 람다식 : (매개변수,...) -> {실행문...} ex. (int x, int y) -> {return x+y;}
- 람다식의 장단점
- 장점
- 일반적으로 코드가 간결
- 코드 가독성이 좋아짐
- 생산성이 높아짐
- 단점
- 재사용이 불가능(익명)
- 디버깅 어려움
- 재귀함수로는 맞지 않음
- 장점
#소스 코드
람다식 기본 예제
// Java 프로그래밍 - 람다식
interface ComputeTool {
public abstract int compute(int x, int y);
// public abstract int compute2(int x, int y);
}
public class Main {
public static void main(String[] args) {
//익명클래스로 객체 생성
ComputeTool cTool1 = new ComputeTool() {
@Override
public int compute(int x, int y) {
return x + y;
}
};
System.out.println(cTool1.compute(1, 2));
/*
*
* 람다식으로 객체 생성
* 주의!) 람다식으로 객체 생성시 추상메소드가 2개인 경우는 람다식으로 객체생성이 불가능하다.
* (익명 클래스로는 가능)
* */
ComputeTool cTool2 = (x, y) -> { return x + y; };
System.out.println(cTool2.compute(1, 2));
}
}
람다식 연습 문제
// Practice
// 아래 인터페이스를 이용하여 익명클래스로 구현한 내용을 람다식으로 구현해보세요.
interface CompareTool {
public abstract int getMaxNum(int num1, int num2);
}
public class Practice {
public static void main(String[] args) {
// 익명클래스
CompareTool cTool = new CompareTool() {
@Override
public int getMaxNum(int num1, int num2) {
return num1 > num2? num1 : num2;
}
};
System.out.println(cTool.getMaxNum(10, 11));
// 람다식으로 작성
CompareTool cTool2 = (num1, num2) -> { return num1 > num2? num1 : num2; };
System.out.println(cTool2.getMaxNum(10, 11));
}
}
'공부 > JAVA' 카테고리의 다른 글
[JAVA]스트림 (1) | 2024.04.27 |
---|---|
[JAVA]컬렉션 프레임워크 (0) | 2024.04.21 |
[JAVA]예외 처리 (0) | 2024.04.20 |
Comments