본문 바로가기
코딩/java

[java] # 17 람다식 (Lambda Expression)

by lazy_nyoung 2023. 2. 27.

람다식 (Lambda Expression)

  • 자바 8부터는 람다식을 지원하기 시작함.
  • 익명함수(anonymous function)을 생성하기 위한 식
  • 코드가 간결해지고, 컬렉션 요소를 필터링, 매핑 해서 원하는 결과를 쉽게 집계 가능.
  • 형태: 매개변수를가진 코드블록     but,   런타임시에는 익명 구현 객체를 생성

 

[자바 8이전 코드] 

Runnable runnable = new Runnable(){
 public void run{...}
 };

 

[람다식]                   (매개변수- 실행을 위해 필요한 값 제공) -> {실행코드} 형태.

       - 함수정의형태를 띠고 있으나 런타임 시 인터페이스의 익명 구현 객체 생성

Runnable runnable = () => {...};

 

예를 들어 매개변수가 int a일 경우,

(int a) -> {system.out.println(a); }

(a) -> {system.out.println(a); }    
//매개변수의 타입은 런타입 시 대입되는 값에 따라 자동인식(따라서, 일반적으로 생략 함)

a -> System.out.println(a)
//매개변수가 하니일 경우, () 생략, 실행문도 하나일경우 {} 생략가능

() -> { 실행문; ...}
//매개변수가 없을경우 빈괄호 ()=>{} 꼭 작성해야함. 

(x,y) -> {return x+y};
//중괄호 실행 후 결과 값 리턴해야 할 경우 return문 작성 하면 된다.

(x, y) -> x + y
//중괄호에 리턴문만 있을 경우 위와 같이 작성하는 것이 정석이다.

 

 

 

 

 

'코딩 > java' 카테고리의 다른 글

[java] #16-1 TreeMap, TreeSet  (0) 2023.02.26
[java] #16 컬렉션프레임워크 (List, Set, Map)  (0) 2023.02.26
[java] #15 네트워킹  (0) 2023.02.25
[java] #14 스레드/멀티스레드  (0) 2023.02.24
[java] #13 제네릭  (0) 2023.02.23