자바는 본래 OOP(객체지향언어)

JDK1.8 부터 함수형 언어 추가 됨.

람다식(Lambda Expression)

함수를 간단한 식(expression)으로 표현하는 방법

익명 함수(anonymous function)

int max(int a, int b) {
	return a > b ? a : b;
}

~~int max~~(int a, int b) -> {
	return a > b ? a : b;
}

함수와 메서드의 차이

근본적으로 같으나, 메서드는 객체지향개념 용어

@Override
    public Optional<Member> findByName(String name) {
        return store.values().stream()
                .filter(member -> member.getName().equals(name))
                .findAny();

    }

람다식 작성하기

  1. 메서드의 이름과 반환 타입을 제거하고 -> 를 블록 {} 앞에 추가한다.
  2. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능(끝에 ; 안 붙임)
(int a, int b) -> a > b ? a : b
  1. 매개변수의 타입이 추론 가능하면 생략 가능 ( 대부분의 경우 생략 가능)