강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

Backend님의 프로필 이미지
Backend

작성한 질문수

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

(추석 챌린지) 복습 정리내용

작성

·

12

·

수정됨

0

[질문 내용]
람다 (lambda)

  • 람다는 익명 함수이다. 따라서 이름 없이 함수를 표현한다.

(매개변수) -> {본문}

용어 - 람다 vs 람다식(Lambda Expression)

  • 람다 : 익명 함수를 지칭하는 일반적 용어. (개념)

  • 람다식 : (매개변수) → {본문} 형태로 람다를 구현하는 구체적인 문법 표현을 지칭

  • 람다도 익명 클래스처럼 클래스가 만들어지고, 인스턴스가 생성된다.

함수형 인터페이스

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

  • 람다는 추상 메서드가 하나인 함수형 인터페이스에만 할당할 수 있다.

  • 단일 추상 메서드를 줄여서 SAM(Single Abstract Method)라 한다.

@FunctionalInterface를 통하여 함수형 인터페이스를 보장할 수 있다.

  • 추상 메서드가 추가되면 컴파일 오류 발생 !

(Ex) @Override를 통해 재정의된 함수임을 알 수 있듯이.

고차함수(Higher-Order Function)

고차 함수란, 함수를 값처럼 다루는 함수를 뜻함

  • 함수를 인자로 받는 함수(메서드)

  • 함수를 반환하는 함수(메서드)

기본 함수형 인터페이스

다음은 자바가 기본으로 제공하는 대표적 함수형 인터페이스이다.

  • Function : 입력 O, 반환 O

  • Consumer : 입력 O, 반환 X

  • Supplier : 입력 X, 반환 O

  • Runnable : 입력 X, 반환 X

특화 함수형 인터페이스

Function으로 구현가능하나, 테스트 용도인 인터페이스라는 것을 명확히 하기 위해 사용

  • Predicate : 입력 O, 반환 boolean

    • 조건 검사, 필터링 용도

  • Operator (UnaryOperator, BinaryOperator) : 입력 O, 반환 O

    • 동일한 타입의 연산 수행, 입력과 같은 타입을 반환하는 연산 용도

 

 

추석 완강 챌린지 중 질문드리고 싶으나, 아직 완벽히 이해된 단계가 아니어서 부득이 복습하며 정리한 내용을 질문으로 작성했습니다. ㅠㅠ

틀린 부분 있다면 지적 부탁드립니다!

답변 1

0

안녕하세요. Backend님, 공식 서포터즈 OMG입니다.

열심히 복습하신 것 같아요. 잘 정리하셨습니다 😀

감사합니다.

Backend님의 프로필 이미지
Backend

작성한 질문수

질문하기