Java Class Notes

Lambda & Stream (람다식과 스트림)

헤일리유 2023. 3. 16. 20:16

 

람다식과 스트림(Lambda & Stream)


 

 

 

람다식이란 

  • 자바 8부터 함수적 프로그래밍 위해 람다식 지원
  • 람다식(Lambda Expressions)을 언어 차원에서 제공
    - 람다 계산법에서 사용된 식을 프로그래밍 언어에 접목
    - 익명 함수(anonymous function)을 생성하기 위한 식
  • 자바에서 람다식을 수용한 이유 • 코드가 매우 간결해진다.
    - 컬렉션 요소(대용량 데이터)를 필터링 또는 매핑해 쉽게 집계
  • 자바는 람다식을 함수적 인터페이스의 익명 구현 객체로 취급
    - 어떤 인터페이스를 구현할지는 대입되는 인터페이스에 달려있음

 

 

 

함수적 스타일의 람다식 작성법

(타입 매개변수) -> { 실행문; ... }
(int a) -> {System.out.println(a)}

매개 타입은 런타임시에 대입값 따라 자동 인식 >> 생략 가능

하나의 매개변수만 있을 경우에는 괄호( ) 생략 가능

하나의 실행문만 있다면 중괄호 { } 생략 가능
매개변수 없다면 괄호 ( ) 생략 불가

리턴값이 있는 경우, return 문 사용
중괄호 { }return 문만 있을 경우, 중괄호 생략 가능

 

 

 

 

 

타겟 타입(target type)

  • 람다식이 대입되는 인터페이스
  • 익명 구현 객체를 만들 때 사용할 인터페이스

 

 

 

 

함수적 인터페이스(functional interface)

하나의 추상 메소드만 선언된 인터페이스가 타겟 타입

@FunctionalInterface 어노테이션

  • 하나의 추상 메소드만을 가지는지 컴파일러가 체크
  • 두개이상의추상메소드가선언되어있으면컴파일오류발생

 

 

 

 

 

 

 

 

 

 

 

 

 

'Java Class Notes' 카테고리의 다른 글

Network (네트워크)  (0) 2023.03.15
Thread(스레드)  (0) 2023.03.10
Ex - Customer Account  (0) 2023.03.10
Genetic and Collection (제네릭과 컬렉션)  (0) 2023.03.06
Exception (예외처리)  (0) 2023.03.03