람다식과 스트림(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 |