람다 표현식
- 보통 메서드와 달리 익명이다
- 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다.
- 람다를 메서드 인수로 전달하거나 변수로 저장할 수 있다
- 익명클래스보다 간결하게 구현할 수 있다
- 람다 코드
Comparator<Apple> byWeight = (Apple a1, Apple a2)
->
a1.getWeight().compareTo(a2.getWeight());
함수형 인터페이스
정확히 하나의 추상 메서드를 지정하는 인터페이스이다.
- Predicate : boolean test(T t)
- T객체를 받아 boolean 반환
- negate
- and
- or
- Consumer : void accept(T t)
- Function : R apply(T t)
- T를 받아 R반환
- antThen
- compose
- Comparator (Function 기반)
- Comparator comparing(Function) 정적메서드 → 오름차순 정렬시켜줌
- reverse() : 디폴트 메서드
- thenComparing()