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
Ad

Recommended

Lambda 란 무엇인가
Lambda 란 무엇인가
Vong Sik Kong
 
Java8 & Lambda
Java8 & Lambda
기현 황
 
자바 8 학습
자바 8 학습
HeeChang Lee
 
자바8강의 2강. Stream API
자바8강의 2강. Stream API
Sejong Park
 
동작 파라미터와 람다 In java 8
동작 파라미터와 람다 In java 8
진우 이
 
자바8 람다식 소개
자바8 람다식 소개
beom kyun choi
 
Java8 람다
Java8 람다
Jong Woo Rhee
 
나에 첫번째 자바8 람다식 지앤선
나에 첫번째 자바8 람다식 지앤선
daewon jeong
 
자바8 스트림 API 소개
자바8 스트림 API 소개
beom kyun choi
 
자바8강의 1강. lambda expression
자바8강의 1강. lambda expression
Sejong Park
 
5 swift 기초함수
5 swift 기초함수
Changwon National University
 
6 swift 고급함수
6 swift 고급함수
Changwon National University
 
Java lambda
Java lambda
Hyosang Hong
 
자바8강의 0강. java8 overview
자바8강의 0강. java8 overview
Sejong Park
 
Java 이해하기 쉬운 코드 20210405
Java 이해하기 쉬운 코드 20210405
Hyosang Hong
 
자바8 람다 나머지 공개
자바8 람다 나머지 공개
Sungchul Park
 
자바스크립트 함수
자바스크립트 함수
유진 변
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초
진수 정
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수
Park Jonggun
 
Javascript 교육자료 pdf
Javascript 교육자료 pdf
Hyosang Hong
 
JDK 변천사
JDK 변천사
SeungHyun Eom
 
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)
MIN SEOK KOO
 
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
Sungchul Park
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
ETRIBE_STG
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
Sung-hoon Ma
 
Javascript - Function
Javascript - Function
wonmin lee
 
Just java
Just java
Jong Wook Kim
 
모델링 연습 리뷰
모델링 연습 리뷰
beom kyun choi
 
2. lambda expression
2. lambda expression
흥래 김
 
Java jungsuk3 ch14_lambda_stream
Java jungsuk3 ch14_lambda_stream
성 남궁
 

More Related Content

What's hot (20)

자바8 스트림 API 소개
자바8 스트림 API 소개
beom kyun choi
 
자바8강의 1강. lambda expression
자바8강의 1강. lambda expression
Sejong Park
 
5 swift 기초함수
5 swift 기초함수
Changwon National University
 
6 swift 고급함수
6 swift 고급함수
Changwon National University
 
Java lambda
Java lambda
Hyosang Hong
 
자바8강의 0강. java8 overview
자바8강의 0강. java8 overview
Sejong Park
 
Java 이해하기 쉬운 코드 20210405
Java 이해하기 쉬운 코드 20210405
Hyosang Hong
 
자바8 람다 나머지 공개
자바8 람다 나머지 공개
Sungchul Park
 
자바스크립트 함수
자바스크립트 함수
유진 변
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초
진수 정
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수
Park Jonggun
 
Javascript 교육자료 pdf
Javascript 교육자료 pdf
Hyosang Hong
 
JDK 변천사
JDK 변천사
SeungHyun Eom
 
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)
MIN SEOK KOO
 
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
Sungchul Park
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
ETRIBE_STG
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
Sung-hoon Ma
 
Javascript - Function
Javascript - Function
wonmin lee
 
Just java
Just java
Jong Wook Kim
 
모델링 연습 리뷰
모델링 연습 리뷰
beom kyun choi
 
자바8 스트림 API 소개
자바8 스트림 API 소개
beom kyun choi
 
자바8강의 1강. lambda expression
자바8강의 1강. lambda expression
Sejong Park
 
자바8강의 0강. java8 overview
자바8강의 0강. java8 overview
Sejong Park
 
Java 이해하기 쉬운 코드 20210405
Java 이해하기 쉬운 코드 20210405
Hyosang Hong
 
자바8 람다 나머지 공개
자바8 람다 나머지 공개
Sungchul Park
 
자바스크립트 함수
자바스크립트 함수
유진 변
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초
진수 정
 
Start IoT with JavaScript - 6.함수
Start IoT with JavaScript - 6.함수
Park Jonggun
 
Javascript 교육자료 pdf
Javascript 교육자료 pdf
Hyosang Hong
 
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)
이것이 자바다 Chap.14 람다식 Lambda expression(java)(KOR)
MIN SEOK KOO
 
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
Sungchul Park
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
ETRIBE_STG
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
Sung-hoon Ma
 
Javascript - Function
Javascript - Function
wonmin lee
 
모델링 연습 리뷰
모델링 연습 리뷰
beom kyun choi
 

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

2. lambda expression
2. lambda expression
흥래 김
 
Java jungsuk3 ch14_lambda_stream
Java jungsuk3 ch14_lambda_stream
성 남궁
 
Java_10 람다
Java_10 람다
Hong Hyo Sang
 
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
JiandSon
 
자바 8
자바 8
신 한
 
람다, 스트림 Api
람다, 스트림 Api
Chi Hwan Choi
 
1. introduction to java8
1. introduction to java8
흥래 김
 
자바8정리.pdf
자바8정리.pdf
Seokju Hong
 
Linq
Linq
Ki Won Kim
 
Java8 - Oracle Korea Magazine
Java8 - Oracle Korea Magazine
Jay Lee
 
SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8
Sangmin Lee
 
Java stream v0.1
Java stream v0.1
Hyosang Hong
 
Java stream v0.1
Java stream v0.1
Hyosang Hong
 
조리돌림 JAVA8 기반의 기능.pptx
조리돌림 JAVA8 기반의 기능.pptx
JunGi Kim
 
Java(3/4)
Java(3/4)
handfoot
 
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 씹고 뜯고 맛보고 즐기는 스트림 API(박용권)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 씹고 뜯고 맛보고 즐기는 스트림 API(박용권)
JiandSon
 
씹고 뜯고 맛보고 즐기는 스트림 API
씹고 뜯고 맛보고 즐기는 스트림 API
Arawn Park
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With Java
Dexter Jung
 
Scala syntax function
Scala syntax function
Yong Joon Moon
 
Lua 문법 -함수
Lua 문법 -함수
Jaehoon Lee
 
2. lambda expression
2. lambda expression
흥래 김
 
Java jungsuk3 ch14_lambda_stream
Java jungsuk3 ch14_lambda_stream
성 남궁
 
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
JiandSon
 
자바 8
자바 8
신 한
 
람다, 스트림 Api
람다, 스트림 Api
Chi Hwan Choi
 
1. introduction to java8
1. introduction to java8
흥래 김
 
자바8정리.pdf
자바8정리.pdf
Seokju Hong
 
Java8 - Oracle Korea Magazine
Java8 - Oracle Korea Magazine
Jay Lee
 
SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8
Sangmin Lee
 
조리돌림 JAVA8 기반의 기능.pptx
조리돌림 JAVA8 기반의 기능.pptx
JunGi Kim
 
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 씹고 뜯고 맛보고 즐기는 스트림 API(박용권)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 씹고 뜯고 맛보고 즐기는 스트림 API(박용권)
JiandSon
 
씹고 뜯고 맛보고 즐기는 스트림 API
씹고 뜯고 맛보고 즐기는 스트림 API
Arawn Park
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With Java
Dexter Jung
 
Lua 문법 -함수
Lua 문법 -함수
Jaehoon Lee
 
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 메소드 탄생으로 인한 다중 상속의 모호성이 대두됨