SlideShare a Scribd company logo
JAVA 8 API
김윤섭
• Lambda(ƛ) 표현식
• 함수형 인터페이스
• stream( )
• Lambda(ƛ) 표현식
• 함수 정의, 함수 적용, 귀납적 함수를 추상화한 형식 체계
> 이와 같은 함수를
LAMBDA(ƛ) 표현식
링크 : closure와 currying
• 함수 정의, 함수 적용, 귀납적 함수를 추상화한 형식 체계
> 이와 같은 함수를
> 이렇게 축약할 수 있습니다. ( lambda 표현식 )
LAMBDA(ƛ) 표현식
링크 : closure와 currying
• 함수 정의, 함수 적용, 귀납적 함수를 추상화한 형식 체계
> 이와 같은 함수를
> 이렇게 축약할 수 있습니다. ( lambda 표현식 )
> 또한, 이렇게도 가능합니다. ( currying 방식)
• 프로그래밍에서 -> 익명 메소드
LAMBDA(ƛ) 표현식
링크 : closure와 currying
LAMBDA(ƛ) 표현식 - 문법
• 기본문법
> ( 매개변수 ) -> { 실행시킬 구문 }
• 대상 메소드를 자동으로 찾고, 람다식
만 적용
LAMBDA(ƛ) 표현식 - 문법
• 응용문법
LAMBDA(ƛ) 표현식 - 하급 예제
• 단순한 for문 비교
• lambda식
> stream()을 사용하여 0~10
미만의 수를 포함한 stream
을 생성
> forEach (i -> { … } 문법 사
용 )
> 매개변수 i
LAMBDA(ƛ) 표현식 - 중급 예제
• 장점
> 코드의 수 감소
> 메소드로 행동방식을 전달
> 추상화로 개발자의 의도를 명확하게 하도록 도움
• 단점
> 람다식을 실행할때에는 인터페이스에 선언된 메소드를 호출하여야 한다.
> 재귀 람다식의 호출이 까다롭다.
> 클로저가 지원되지 않는다.
LAMBDA(ƛ) 표현식 - 장/단점
• 함수형 인터페이스 (Functional Interface)
> 개념 소개
> @FunctionalInterface 적용 유무
> 추상 메소드가 여러개일때
> default 메소드
함수형 인터페이스
• 추상메소드가 1개 뿐인 인터페이
스를 함수형 인터페이스라 합니
다.
• @FunctionalInterface
> 함수형 인터페이스임을 명시
> 추상메소드가 두개 이상이라
면 컴파일 오류를 발생
> 없어도 함수형 인터페이스로
서 사용 가능( => 기존 인터
페이스도 람다식 사용 가능 )
함수형 인터페이스 - Annotation 비교
람다식 사용불가
함수형 인터페이스 - 메소드 추가시
함수형 인터페이스 - 예외 메소드
• 구현이 되어있는 default, static
메소드는 추가로 더 있어도 무방
• default 메소드
> JAVA 8 이 되면서 생긴 인터
페이스의 메소드 형태
> Default methods are defined
with the default modifier =>
default 메소드는 기본적으
로 사용될 형태로 정의 된다.
함수형 인터페이스 - 기타
• http://docs.oracle.com/javase/8/docs/api/java/util/function/package-
summary.html => 람다표현식을 타겟으로 한 공식제공 인터페이스
• default 메소드 탄생으로 인한 다중 상속의 모호성이 대두됨
code : https://github.com/yoonsubKim/java-lambda
REFERENCE

More Related Content

PDF
Lambda 란 무엇인가
PDF
Java8 & Lambda
PPTX
자바 8 학습
PDF
자바8강의 2강. Stream API
PPTX
동작 파라미터와 람다 In java 8
PDF
자바8 람다식 소개
PPTX
Java8 람다
PDF
나에 첫번째 자바8 람다식 지앤선
Lambda 란 무엇인가
Java8 & Lambda
자바 8 학습
자바8강의 2강. Stream API
동작 파라미터와 람다 In java 8
자바8 람다식 소개
Java8 람다
나에 첫번째 자바8 람다식 지앤선

What's hot (20)

PDF
자바8 스트림 API 소개
PDF
자바8강의 1강. lambda expression
PDF
5 swift 기초함수
PDF
6 swift 고급함수
PDF
Java lambda
PDF
자바8강의 0강. java8 overview
PDF
Java 이해하기 쉬운 코드 20210405
PDF
자바8 람다 나머지 공개
PPTX
자바스크립트 함수
PPTX
자바스크립트 기초문법~함수기초
PDF
Start IoT with JavaScript - 6.함수
PDF
Javascript 교육자료 pdf
PDF
JDK 변천사
PPTX
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)
PDF
java 8 람다식 소개와 의미 고찰
DOCX
Javascript 완벽 가이드 정리
PPTX
0.javascript기본(~3일차내)
PDF
Javascript - Function
PPTX
Just java
PDF
모델링 연습 리뷰
자바8 스트림 API 소개
자바8강의 1강. lambda expression
5 swift 기초함수
6 swift 고급함수
Java lambda
자바8강의 0강. java8 overview
Java 이해하기 쉬운 코드 20210405
자바8 람다 나머지 공개
자바스크립트 함수
자바스크립트 기초문법~함수기초
Start IoT with JavaScript - 6.함수
Javascript 교육자료 pdf
JDK 변천사
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)
java 8 람다식 소개와 의미 고찰
Javascript 완벽 가이드 정리
0.javascript기본(~3일차내)
Javascript - Function
Just java
모델링 연습 리뷰
Ad

Similar to Java 8 api :: lambda 이용하기 (15)

PPTX
2. lambda expression
PPTX
조리돌림 JAVA8 기반의 기능.pptx
PPTX
자바 8
PPTX
1. introduction to java8
PPTX
PPTX
Java collections framework
PDF
9 swift 클로저1
PDF
Java_10 람다
PDF
Java jungsuk3 ch14_lambda_stream
PDF
[15]Android Kotlin을 통한 개발 전략
PDF
Scala 기초 (2)
PPTX
Clean code(03)
PPT
자바와 사용하기2
PPTX
Effective c++ 4
PDF
Feature Branch Branch Dev QA 환경 구성기
2. lambda expression
조리돌림 JAVA8 기반의 기능.pptx
자바 8
1. introduction to java8
Java collections framework
9 swift 클로저1
Java_10 람다
Java jungsuk3 ch14_lambda_stream
[15]Android Kotlin을 통한 개발 전략
Scala 기초 (2)
Clean code(03)
자바와 사용하기2
Effective c++ 4
Feature Branch Branch Dev QA 환경 구성기
Ad

Java 8 api :: lambda 이용하기

  • 2. • Lambda(ƛ) 표현식 • 함수형 인터페이스 • stream( )
  • 4. • 함수 정의, 함수 적용, 귀납적 함수를 추상화한 형식 체계 > 이와 같은 함수를 LAMBDA(ƛ) 표현식 링크 : closure와 currying
  • 5. • 함수 정의, 함수 적용, 귀납적 함수를 추상화한 형식 체계 > 이와 같은 함수를 > 이렇게 축약할 수 있습니다. ( lambda 표현식 ) LAMBDA(ƛ) 표현식 링크 : closure와 currying
  • 6. • 함수 정의, 함수 적용, 귀납적 함수를 추상화한 형식 체계 > 이와 같은 함수를 > 이렇게 축약할 수 있습니다. ( lambda 표현식 ) > 또한, 이렇게도 가능합니다. ( currying 방식) • 프로그래밍에서 -> 익명 메소드 LAMBDA(ƛ) 표현식 링크 : closure와 currying
  • 7. LAMBDA(ƛ) 표현식 - 문법 • 기본문법 > ( 매개변수 ) -> { 실행시킬 구문 } • 대상 메소드를 자동으로 찾고, 람다식 만 적용
  • 8. LAMBDA(ƛ) 표현식 - 문법 • 응용문법
  • 9. LAMBDA(ƛ) 표현식 - 하급 예제 • 단순한 for문 비교 • lambda식 > stream()을 사용하여 0~10 미만의 수를 포함한 stream 을 생성 > forEach (i -> { … } 문법 사 용 ) > 매개변수 i
  • 10. LAMBDA(ƛ) 표현식 - 중급 예제
  • 11. • 장점 > 코드의 수 감소 > 메소드로 행동방식을 전달 > 추상화로 개발자의 의도를 명확하게 하도록 도움 • 단점 > 람다식을 실행할때에는 인터페이스에 선언된 메소드를 호출하여야 한다. > 재귀 람다식의 호출이 까다롭다. > 클로저가 지원되지 않는다. LAMBDA(ƛ) 표현식 - 장/단점
  • 12. • 함수형 인터페이스 (Functional Interface) > 개념 소개 > @FunctionalInterface 적용 유무 > 추상 메소드가 여러개일때 > default 메소드
  • 13. 함수형 인터페이스 • 추상메소드가 1개 뿐인 인터페이 스를 함수형 인터페이스라 합니 다. • @FunctionalInterface > 함수형 인터페이스임을 명시 > 추상메소드가 두개 이상이라 면 컴파일 오류를 발생 > 없어도 함수형 인터페이스로 서 사용 가능( => 기존 인터 페이스도 람다식 사용 가능 )
  • 14. 함수형 인터페이스 - Annotation 비교
  • 16. 함수형 인터페이스 - 예외 메소드 • 구현이 되어있는 default, static 메소드는 추가로 더 있어도 무방 • default 메소드 > JAVA 8 이 되면서 생긴 인터 페이스의 메소드 형태 > Default methods are defined with the default modifier => default 메소드는 기본적으 로 사용될 형태로 정의 된다.
  • 17. 함수형 인터페이스 - 기타 • http://docs.oracle.com/javase/8/docs/api/java/util/function/package- summary.html => 람다표현식을 타겟으로 한 공식제공 인터페이스 • default 메소드 탄생으로 인한 다중 상속의 모호성이 대두됨