3.1 람다란 무엇인가?
람다 lambda라는 용어는 람다 미적분학 학계에서 개발한 시스템에서 유래
람다 표현식을 사용하면 코드를 더 쉽게 구현, 간결한 표현으로 구현
람다 :
(파라미터 리스트) -> (람다 바디)
(parameters) -> expression
(parameters) -> {statements;}
3.2 어디에, 어떻게 람다를 사용할까?
3.2.1 함수형 인터페이스
@FunctionalInterface
interface에 하나의 추상 메서드만 있음
전체 표현식을 함수형 인터페이스의 인스턴스
3.2.2. 함수 디스트립터
추상 메서드 시그너쳐는 람다 표현식의 시그너쳐를 가리킨다.
람다 표현식의 시그너쳐를 서술하는 메서드를 함수 디스크립터
() -> void ( runnable 같은거)
3.3 람다활용
3.4 함수형 인터페이스 사용
3.4.1 Predicate : () -> boolean
3.4.2 Consumer : (T) -> void
3.4.3 Function: (T) -> (R)
제공되는 함수형 인터페이스
함수형 인터페이스 | 함수 디시크립터 | 예제 |
Predicate<T> | T -> boolean | (List<String> list) -> list.isEmpty() |
Consumer<T> | T -> void | (Apple a) -> System.out.println(a.getWeight) |
Function<T> | T -> R | (String s) -> s.length() |
Supplier<T> | () -> T | () -> new Apple(10) |
UnaryOperator<T> | T -> T | (Integer a) -> a + 1 |
BiOperator<T> | (T, T) -> T | |
BiPredicate<L, R> | (L, R) -> boolean | |
BiConsumer<T, U> | (T, U) -> void | |
BiFunction<T, U, R> | (T, U) -> R | (Apple a1, Apple a2) -> a.getWeight().compareTo(a2.getWeight()) |
'독서관련 > Modern Java In Action' 카테고리의 다른 글
CHAPTER 5 : 스트림 활용 (0) | 2022.06.28 |
---|---|
CHAPTER 4 : 스트림 소개 (0) | 2022.06.28 |
CHAPTER 2 : 동작 파라미터화 코드 전달하기 (0) | 2022.06.03 |
CHAPTER 1 자바 8 : New Feature (0) | 2022.06.02 |
java8 CH16 – CompletableFuture (0) | 2020.10.14 |