728x90
반응형
java 8에서 도입된 기능으로 익명 함수를 정의하고 사용할 수 있게 해준다.
람다식은 주로 간단한 함수형 인터페이스의 구현을 단순화하고 코드를 더 읽기 쉽게 만든다.
(parameters) -> { body }
- parameters
함수의 매개변수, 괄호 안에 매개변수를 정의함.
매개 변수 타입을 명시할 수도 있고 생략할 수도 있음.
매개변수가 하나만 있는 경우 괄호도 생략 가능.
- ->
람다 연산자. 매개변수 목록과 람다 본문을 분리
- body
람다의 본문.
중괄호 안에 코드 블록을 작성하거나, 단일 표현식인 경우 중괄호 생략 가능
//파라미터 없이 단순 명령 수행
() -> System.out.println("Hello World")
//하나의 파라미터와 단순한 명령
x -> System.out.println(x)
//스트림의 필터에서도 사용가능
.filter(num -> num%5 ==0)
//두개의 파라미터와 복잡한 명령
(x, y) -> {
int result = x + y;
System.out.println(result);
}
메소드 참조 (::)
메소드 참조는 람다 표현식의 또 다른 형태로, 이미 정의된 메소드를 참조할 수 있게 함.
Object::method
- 정적 메소드 참조
클래스 :: 정적메소드 형태로 사용.
ex) Math::max == Math.max(a, b)와 동일
- 특정 인스턴스의 메소드 참조
인스턴스 :: 메소드 형태로 사용.
ex) str::length == str.length()와 동일
- 특정 타입의 임이의 객체에 대한 메소드 참조
클래스::메소드 형태로 사용.
ex) String::length 는 각 문자열 인스턴스에 대해 length() 메소드를 호출하는 것과 동일.
- 생성자 참조
클래스::new 형태로 사용.
ex) ArrayList::new == new ArrayList()와 동일
728x90
반응형
'Java' 카테고리의 다른 글
| [자바의정석/5]배열이란 (1) | 2023.10.20 |
|---|---|
| [자바의정석/4]조건문과 반복문이란 (0) | 2023.10.19 |
| [자바의정석/3]연산자란 (0) | 2023.10.17 |
| [자바의정석/2]변수란 (1) | 2023.10.16 |
| [자바의정석/1]Java란 (1) | 2023.10.16 |