강의

멘토링

로드맵

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

Backend님의 프로필 이미지
Backend

작성한 질문수

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

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

작성

·

8

·

수정됨

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

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

 

 

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

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

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
Backend님의 프로필 이미지
Backend

작성한 질문수

질문하기