람다(lamda)
- 익명 함수(Anonymous functions)를 지칭한다
- 함수를 단순하게 표현하기 위해 사용된다
사용방법
- (매개변수목록) -> {함수몸체 }
- 타입을 추론할 수 있을 경우, 타입 생략 가능
- 매개변수가 하나일때 괄호 생략 가능
- 하나의 명령문으로 이루어졌을 때 중괄호 생략 가능
- return문으로 이루어졌을 때 중괄호 생략 불가
ex1) 람다식을 통해 간단하게 표현하기
//기존코드
new Object()
int min(int x, int y) {
return x < y ? x : y;
}
//람다식
(x,y) -> x < y ? x:y;
ex2) return문은 중괄호 생략불가
//기존코드
int add(int x, int y) {
return x+y;
}
//람다식(return문이기 때문에 중괄호 생략 불가능
(x,y) -> {return x+y};
ex3) 람다식으로 인터페이스 구현
//Runnable을 이용하여 쓰레드를 만드는 방법
public class LambdaExam1 {
public static void main(String[] args) {
//Runnable인터페이스의 경우 run()메소드를 하나만 가지고 있다
new Thread(new Runnable(){public void run(){
for(int i = 0; i < 10; i++){
System.out.println("hello");
}
}}).start();
}
}
//lamda식을 이용하여 수정한 코드
public class LambdaExam1 {
public static void main(String[] args) {
new Thread(()->{
for(int i = 0; i < 10; i++){
System.out.println("hello");
}
}).start();
}
}
Thread생성자 api를 통해 Runnable 인터페이스를 받아들이는 것을 알 수 있다 > 람다식을 Runnable을 구현하는 객체로 자동으로 만들어서 매개변수로 넣어준다
*본 게시물은 프로그래머스<자바중급>을 복습하며 작성한 글입니다*
'JAVA' 카테고리의 다른 글
JAVA(2022.06.10) - 제네릭(Generic) (0) | 2022.06.10 |
---|---|
JAVA(2022.06.09) - 시간복잡도 (0) | 2022.06.09 |
JAVA(2022.06.07) - 데몬 쓰레드 (0) | 2022.06.07 |
JAVA(2022.06.06) - 쓰레드와 상태제어(wait, notify) (0) | 2022.06.06 |
JAVA(2022.06.05) - 쓰레드와 상태제어(join) (0) | 2022.06.05 |