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())

 

+ Recent posts