3.1 람다란 무엇인가?

람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것

람다 표현식은 파라미터, 화살표, 바디로 이루어진다.

(Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight());

3.2 어디에, 어떻게 람다를 사용할까?

필터 메서드에도 람다를 활용할 수 있다.

List<Apple> greenApples = filter(inventory, (Apple a) -> GREEN.equals(a.getColor()));

3.2.1 함수형 인터페이스

Predicate<T>가 함수형 인터페이스인데, 이는 오직 하나의 추상 메서드만 지정하기 때문이다.

public interface Predicate<T> {
	boolean test (T t);
}

함수형 인터페이스는 정확히 하나의 추상 메서드를 지정하는 인터페이스다.

자바 API의 함수형 인터페이스로 Comparator, Runnable등이 있다.