본문 바로가기

JAVA

JAVA(2022.06.08) - 람다식

람다(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을 구현하는 객체로 자동으로 만들어서 매개변수로 넣어준다 

 

 

 

 

 

 

*본 게시물은 프로그래머스<자바중급>을 복습하며 작성한 글입니다*