Recommended
PPTX
PDF
์๋ฐ8 ์คํธ๋ฆผ API ์๊ฐ
PDF
์๋ฐ8๊ฐ์ 2๊ฐ. Stream API
PPTX
PDF
แแ
กแแ
ฆ แแ
ฅแบแแ
ฅแซแแ
ข แแ
กแแ
ก8 แ
แ
กแทแแ
กแแ
ตแจ แแ
ตแแ
ขแซแแ
ฅแซ
PDF
แแ
กแแ
ก8 แ
แ
กแทแแ
กแแ
ตแจ แแ
ฉแแ
ข
PPTX
๋์ ํ๋ผ๋ฏธํฐ์ ๋๋ค In java 8
PDF
PDF
์๋ฐ8 ๋๋ค ๋๋จธ์ง ๊ณต๊ฐ
PDF
Java 8 api :: lambda ์ด์ฉํ๊ธฐ
PDF
์น๊ณ ๋ฏ๊ณ ๋ง๋ณด๊ณ ์ฆ๊ธฐ๋ ์คํธ๋ฆผ API
PDF
์๋ฐ8๊ฐ์ 0แแ
กแผ. java8 overview
PDF
์๋ฐ8๊ฐ์ 1แแ
กแผ. lambda expression
PDF
5 swift แแ
ตแแ
ฉแแ
กแทแแ
ฎ
PDF
6 swift แแ
ฉแแ
ณแธแแ
กแทแแ
ฎ
PDF
PPTX
PDF
java 8 ๋๋ค์ ์๊ฐ์ ์๋ฏธ ๊ณ ์ฐฐ
PPTX
PDF
แแ
ฉแแ
ฆแฏแ
แ
ตแผ แแ
งแซแแ
ณแธ ๋ฆฌ๋ทฐ
PPTX
์ด๊ฒ์ด ์๋ฐ๋ค Chap.14 ๋๋ค์ Lambda expression(java)(KOR)
PDF
PDF
PDF
Ji ๊ฐ๋ฐ ๋ฆฌ๋ทฐ (์ ๋ฆผํ๋ก๊ทธ๋๋จธ)
PDF
Javascript ๊ต์ก์๋ฃ pdf
PDF
์ค์ํํธ ์ฑ๋ฅ ์ดํดํ๊ธฐ
PDF
[Main Session] ๋ฏธ๋์ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์ฐ๋ฒ์ ๋ฐํ ๋ผ ํ๋ก์ ํธ๋ฅผ ์ค์ฌ์ผ๋ก
PDF
PDF
PDF
Isomorphicspring Isomorphic - spring web seminar 2015
More Related Content
PPTX
PDF
์๋ฐ8 ์คํธ๋ฆผ API ์๊ฐ
PDF
์๋ฐ8๊ฐ์ 2๊ฐ. Stream API
PPTX
PDF
แแ
กแแ
ฆ แแ
ฅแบแแ
ฅแซแแ
ข แแ
กแแ
ก8 แ
แ
กแทแแ
กแแ
ตแจ แแ
ตแแ
ขแซแแ
ฅแซ
PDF
แแ
กแแ
ก8 แ
แ
กแทแแ
กแแ
ตแจ แแ
ฉแแ
ข
PPTX
๋์ ํ๋ผ๋ฏธํฐ์ ๋๋ค In java 8
PDF
What's hot
PDF
์๋ฐ8 ๋๋ค ๋๋จธ์ง ๊ณต๊ฐ
PDF
Java 8 api :: lambda ์ด์ฉํ๊ธฐ
PDF
์น๊ณ ๋ฏ๊ณ ๋ง๋ณด๊ณ ์ฆ๊ธฐ๋ ์คํธ๋ฆผ API
PDF
์๋ฐ8๊ฐ์ 0แแ
กแผ. java8 overview
PDF
์๋ฐ8๊ฐ์ 1แแ
กแผ. lambda expression
PDF
5 swift แแ
ตแแ
ฉแแ
กแทแแ
ฎ
PDF
6 swift แแ
ฉแแ
ณแธแแ
กแทแแ
ฎ
PDF
PPTX
PDF
java 8 ๋๋ค์ ์๊ฐ์ ์๋ฏธ ๊ณ ์ฐฐ
PPTX
PDF
แแ
ฉแแ
ฆแฏแ
แ
ตแผ แแ
งแซแแ
ณแธ ๋ฆฌ๋ทฐ
PPTX
์ด๊ฒ์ด ์๋ฐ๋ค Chap.14 ๋๋ค์ Lambda expression(java)(KOR)
PDF
PDF
PDF
Ji ๊ฐ๋ฐ ๋ฆฌ๋ทฐ (์ ๋ฆผํ๋ก๊ทธ๋๋จธ)
PDF
Javascript ๊ต์ก์๋ฃ pdf
PDF
์ค์ํํธ ์ฑ๋ฅ ์ดํดํ๊ธฐ
PDF
[Main Session] ๋ฏธ๋์ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์ฐ๋ฒ์ ๋ฐํ ๋ผ ํ๋ก์ ํธ๋ฅผ ์ค์ฌ์ผ๋ก
PDF
Viewers also liked
PDF
PDF
Isomorphicspring Isomorphic - spring web seminar 2015
PDF
PDF
Beyond Java: ์๋ฐ 8์ ์ค์ฌ์ผ๋ก ๋ณธ ์๋ฐ์ ํ์
PDF
๊ฐ๋จ Ip ํํฐ ๊ตฌํ ์ด์ผ๊ธฐ
PDF
PDF
ํ๋ก2 YARN ์งง๊ฒ ๋ณด๊ธฐ
PDF
PPT
Similar to Java8 & Lambda
PPTX
PDF
SpringCamp 2013 : About Jdk8
PDF
Java8 - Oracle Korea Magazine
PDF
PPTX
PDF
2014.07.26 KSUG์ ์ง์ค์ ์ด ํจ๊ปํ๋ ํ
ํฌ๋์ปฌ ์ธ๋ฏธ๋ - ์น๊ณ ๋ฏ๊ณ ๋ง๋ณด๊ณ ์ฆ๊ธฐ๋ ์คํธ๋ฆผ API(๋ฐ์ฉ๊ถ)
PDF
PDF
PDF
2014.07.26 KSUG์ ์ง์ค์ ์ด ํจ๊ปํ๋ ํ
ํฌ๋์ปฌ ์ธ๋ฏธ๋ - แแ
ก์ แแ
ฅแบแแ
ฅแซแแ
ข แแ
กแแ
ก8 แ
แ
กแทแแ
กแแ
ตแจ (์ ๋์)
PDF
PDF
PDF
Java jungsuk3 ch14_lambda_stream
PPTX
Java collections framework
PPTX
PDF
แแ
กแแ
ก8แแ
ฅแผแ
แ
ต.pdf
PPTX
์๋ฐ9 ํน์ง (Java9 Features)
PPTX
์คํธ๋ฆผApi ์คํฐ๋ 2์ผ
PDF
PPTX
PPTX
Java8แแ
ดแแ
ฉแแ
ณแซแแ
ฅแบ.pptx
Java8 & Lambda 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. โ ๋ ์ง ๋ฐ ์๊ฐ API
์ด ์ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ ๋ ์์ฐ์ค๋ฝ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ์ดํดํ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ๋ ์ง ๋ฐ
์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค.
โ Nashorn Javascript ์์ง
์๋ก์ด ๊ฒฝ๋์ ๊ณ ์ฑ๋ฅ JavaScript ์์ง์ด ๊ตฌํ๋์ด JDK์ ํตํฉ๋์์ผ๋ฉฐ ๊ธฐ์กด API๋ฅผ ํตํด JAVA
์์ฉ ํ๋ก๊ทธ๋จ์์ ์ด ์์ง์ ์ฌ์ฉํ ์ ์๋ค.
โ ํฅ์๋ ๋ณด์
ํธ์ถ์์ ์์กดํ๋ ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๋ ๊ธฐ์กด ๋ชฉ๋ก์ ์ด๋ฌํ ๋ฉ์๋๋ฅผ ์ ํํ๊ฒ
์๋ณํ๊ณ ํธ์ถ์๋ฅผ ์์ ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊พผ๋ค.
โ Lambda ํํ์ ๋ฐ ๊ฐ์ ํ์ฅ ๋ฉ์๋
JAVA8์์ ๋์ ๋๋ ๊ธฐ๋ฅ์ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ํ๋ซํผ์ ๊ตฌํ๋ ๋๋ค ํํ์ ๋ฐ ์ง์
๊ธฐ๋ฅ์ด๋ค.
JAVA8 ์ ์ฃผ์ ๊ธฐ๋ฅ
23. โ ๋ ์ง ๋ฐ ์๊ฐ API
์ด ์ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ ๋ ์์ฐ์ค๋ฝ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ์ดํดํ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ๋ ์ง ๋ฐ
์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค.
โ Nashorn Javascript ์์ง
์๋ก์ด ๊ฒฝ๋์ ๊ณ ์ฑ๋ฅ JavaScript ์์ง์ด ๊ตฌํ๋์ด JDK์ ํตํฉ๋์์ผ๋ฉฐ ๊ธฐ์กด API๋ฅผ ํตํด JAVA
์์ฉ ํ๋ก๊ทธ๋จ์์ ์ด ์์ง์ ์ฌ์ฉํ ์ ์๋ค.
โ ํฅ์๋ ๋ณด์
ํธ์ถ์์ ์์กดํ๋ ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๋ ๊ธฐ์กด ๋ชฉ๋ก์ ์ด๋ฌํ ๋ฉ์๋๋ฅผ ์ ํํ๊ฒ
์๋ณํ๊ณ ํธ์ถ์๋ฅผ ์์ ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊พผ๋ค.
โ Lambda ํํ์ ๋ฐ ๊ฐ์ ํ์ฅ ๋ฉ์๋
JAVA8์์ ๋์ ๋๋ ๊ธฐ๋ฅ์ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ํ๋ซํผ์ ๊ตฌํ๋ ๋๋ค ํํ์ ๋ฐ ์ง์
๊ธฐ๋ฅ์ด๋ค.
JAVA8 ์ ์ฃผ์ ๊ธฐ๋ฅ
24. โ ๋ ์ง ๋ฐ ์๊ฐ API
์ด ์ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ ๋ ์์ฐ์ค๋ฝ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ์ดํดํ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ๋ ์ง ๋ฐ
์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค.
โ Nashorn Javascript ์์ง
์๋ก์ด ๊ฒฝ๋์ ๊ณ ์ฑ๋ฅ JavaScript ์์ง์ด ๊ตฌํ๋์ด JDK์ ํตํฉ๋์์ผ๋ฉฐ ๊ธฐ์กด API๋ฅผ ํตํด JAVA
์์ฉ ํ๋ก๊ทธ๋จ์์ ์ด ์์ง์ ์ฌ์ฉํ ์ ์๋ค.
โ ํฅ์๋ ๋ณด์
ํธ์ถ์์ ์์กดํ๋ ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๋ ๊ธฐ์กด ๋ชฉ๋ก์ ์ด๋ฌํ ๋ฉ์๋๋ฅผ ์ ํํ๊ฒ
์๋ณํ๊ณ ํธ์ถ์๋ฅผ ์์ ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊พผ๋ค.
โ Lambda ํํ์ ๋ฐ ๊ฐ์ ํ์ฅ ๋ฉ์๋
JAVA8์์ ๋์ ๋๋ ๊ธฐ๋ฅ์ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ํ๋ซํผ์ ๊ตฌํ๋ ๋๋ค ํํ์ ๋ฐ ์ง์
๊ธฐ๋ฅ์ด๋ค.
JAVA8 ์ ์ฃผ์ ๊ธฐ๋ฅ
25. โ ๋ ์ง ๋ฐ ์๊ฐ API
์ด ์ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ ๋ ์์ฐ์ค๋ฝ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ์ดํดํ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ๋ ์ง ๋ฐ
์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค.
โ Nashorn Javascript ์์ง
์๋ก์ด ๊ฒฝ๋์ ๊ณ ์ฑ๋ฅ JavaScript ์์ง์ด ๊ตฌํ๋์ด JDK์ ํตํฉ๋์์ผ๋ฉฐ ๊ธฐ์กด API๋ฅผ ํตํด JAVA
์์ฉ ํ๋ก๊ทธ๋จ์์ ์ด ์์ง์ ์ฌ์ฉํ ์ ์๋ค.
โ ํฅ์๋ ๋ณด์
ํธ์ถ์์ ์์กดํ๋ ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๋ ๊ธฐ์กด ๋ชฉ๋ก์ ์ด๋ฌํ ๋ฉ์๋๋ฅผ ์ ํํ๊ฒ
์๋ณํ๊ณ ํธ์ถ์๋ฅผ ์์ ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊พผ๋ค.
โ Lambda ํํ์ ๋ฐ ๊ฐ์ ํ์ฅ ๋ฉ์๋
JAVA8์์ ๋์ ๋๋ ๊ธฐ๋ฅ์ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ํ๋ซํผ์ ๊ตฌํ๋ ๋๋ค ํํ์ ๋ฐ ์ง์
๊ธฐ๋ฅ์ด๋ค.
JAVA8 ์ ์ฃผ์ ๊ธฐ๋ฅ
26. โ ๋ ์ง ๋ฐ ์๊ฐ API
์ด ์ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ ๋ ์์ฐ์ค๋ฝ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ์ดํดํ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ๋ ์ง ๋ฐ
์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ค.
โ Nashorn Javascript ์์ง
์๋ก์ด ๊ฒฝ๋์ ๊ณ ์ฑ๋ฅ JavaScript ์์ง์ด ๊ตฌํ๋์ด JDK์ ํตํฉ๋์์ผ๋ฉฐ ๊ธฐ์กด API๋ฅผ ํตํด JAVA
์์ฉ ํ๋ก๊ทธ๋จ์์ ์ด ์์ง์ ์ฌ์ฉํ ์ ์๋ค.
โ ํฅ์๋ ๋ณด์
ํธ์ถ์์ ์์กดํ๋ ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ์ ์ง ๊ด๋ฆฌํ๋ ๊ธฐ์กด ๋ชฉ๋ก์ ์ด๋ฌํ ๋ฉ์๋๋ฅผ ์ ํํ๊ฒ
์๋ณํ๊ณ ํธ์ถ์๋ฅผ ์์ ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊พผ๋ค.
โ Lambda ํํ์ ๋ฐ ๊ฐ์ ํ์ฅ ๋ฉ์๋
JAVA8์์ ๋์ ๋๋ ๊ธฐ๋ฅ์ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ํ๋ซํผ์ ๊ตฌํ๋ ๋๋ค ํํ์ ๋ฐ ์ง์
๊ธฐ๋ฅ์ด๋ค.
JAVA8 ์ ์ฃผ์ ๊ธฐ๋ฅ
27. Java8์ Lambda ํํ์์ ๋ฐ์๋ค์ด๋ฉด์
Functional Programming ํน์ง์ ๊ฐ์ถ๊ฒ ๋์ด
OOP + FP ์ ๋ฉํฐ ํจ๋ฌ๋ค์ ์ธ์ด(Multi paradigm language)๊ฐ ๋๋ค.
Functional Programming(ํจ์ํ ํ๋ก๊ทธ๋๋ฐ)์ด๋?
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์๋ฃ ์ฒ๋ฆฌ๋ฅผ ์ํ์ ํจ์์ ๊ณ์ฐ์ผ๋ก ์ทจ๊ธํ๊ณ ์ํ์ ๊ฐ๋ณ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ฆฌํ๋ ํ๋ก๊ทธ๋
๋ฐ ํจ๋ฌ๋ค์์ ํ๋์ด๋ค. ๋ช
๋ นํ ํ๋ก๊ทธ๋๋ฐ์์๋ ์ํ๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ ๊ฐ์กฐํ๋ ๊ฒ๊ณผ๋ ๋ฌ๋ฆฌ, ํจ์ํ ํ๋ก๊ทธ๋
๋ฐ์ ํจ์์ ์์ฉ์ ๊ฐ์กฐํ๋ค.
์ํ์ ํจ์์ ๋ช
๋ นํ ํ๋ก๊ทธ๋๋ฐ์์ ์ฌ์ฉ๋๋ ํจ์๋ ์ฐจ์ด๊ฐ ์๋๋ฐ, ๋ช
๋ นํ์ ํจ์๋ ํ๋ก๊ทธ๋จ์ ์ํ์ ๊ฐ
์ ๋ฐ๊ฟ ์ ์๋ ๋ถ์์ฉ์ด ์๊ธธ ์ ์๋ค. ์ด ๋๋ฌธ์ ๋ช
๋ นํ ํจ์๋ ์ฐธ์กฐ ํฌ๋ช
์ฑ์ด ์๊ณ , ๊ฐ์ ์ฝ๋๋ผ๋ ์คํ๋๋
ํ๋ก๊ทธ๋จ์ ์ํ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ์ ๋ผ ์ ์๋ค. ๋ฐ๋๋ก ํจ์ํ ์ฝ๋์์๋ ํจ์์ ์ถ๋ ฅ ๊ฐ์ ๊ทธ ํจ์์ ์
๋ ฅ
๋ ์ธ์์๋ง ์์กดํ๋ฏ๋ก ์ธ์ x์ ๊ฐ์ ๊ฐ์ ๋ฃ๊ณ ํจ์ f๋ฅผ ํธ์ถํ๋ฉด ํญ์ f(x)๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค. ๋ถ์์ฉ์ ์
๊ฑฐํ๋ฉด ํ๋ก๊ทธ๋จ์ ๋์์ ์ดํดํ๊ณ ์์ธกํ๊ธฐ๊ฐ ํจ์ฌ ์ฝ๊ฒ ๋๋ค. ์ด๊ฒ์ด ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๊ฐ๋ฐํ๋ ค๋ ํต
์ฌ ๋๊ธฐ ์ค ํ๋์ด๋ค.
28. โ ๋ช
๋ นํ ์ธ์ด : a๋ผ๋ ๋ณ์์ 1์ ๋ด์๋ผ. (๋์
)
โ ํจ์ํ ์ธ์ด : a๋ฅผ 1๋ก ์ ์ํ๋ค.
a = 1
29. Lambda Expression
๋๋ค์์ ๋ฉ์๋์ ์ ์ฌ
ํ์ ๋งค๊ฐ๋ณ์์ ๋ชฉ๋ก๊ณผ ์ด ๋งค๊ฐ๋ณ์๋ก ํํ๋ ๋ณธ๋ฌธ(์์ด๋ ์ฝ๋ ๋ธ๋ก)์ ์ ๊ณต
A lambda expression is like a method : it provides a list of formal
parameters and a body - an expression or block - expressed in terms
of those parameters.
- jsr335, /spec/B.html
30. Lambda Syntax
(์ธ์ ๋ชฉ๋ก ) - { ๊ตฌ๋ฌธ }
( int x, int y ) - { return x + y; }
(int x, int y ) - x + y
( ) - โHello, World! โ
( x, y ) - x + y
x - x + 1
31. public void adder ( int x, int y ) {
return x + y;
}
( int x, int y ) - { return x + y; }
( x, y ) - x + y;
32. // Java8 ์ด์
Collections.sort(strings, new ComparatorString() {
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
// Java8
Collections.sort(strings, (s1, s2) - s1.compareTo(s2));
33. โ Functional Interface
โข ๋จ ํ๋์ ์ถ์ ๋ฉ์๋๋ฅผ ๊ฐ๋๋ค.
โข ๋๋ค ํํ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด @FunctionalInterface
์ฃผ์(annotation)์ ๋ถ์ผ ์ ์๋ค.
(์ด ๋ฐฉ์์ด ๊ฐ๋ ฅ ์ถ์ฒ ๋จ!)
? adder = ( int x, int y ) - x + y
Lambda์ ํ์
์?
34. @FunctionalInterface
public interface IAddableT {
// To add two objects
public T add(T t1, T t2);
}
IAddableString stringAdder = (String s1, String s2) - s1 + s2;
IAddableInteger intAdder = (i1, i2) - i1 + i2;
public void addStrings(String s1, String s2) {
System.out.println(stringAdder.add(s1, s2));
}
public void addIntegers(Integer i1, Integer i2) {
System.out.println(intAdder.add(i1, i2));
}
โ ์ธํฐํ์ด์ค ์ ์
โ ๋๋ค ํํ์์ ์ด์ฉํ์ฌ Functional Interface ๊ตฌํ
IAddable์ด generic type ์ธํฐํ์ด์ค์ด๊ธฐ ๋๋ฌธ์ ์๋ก ๋ค๋ฅธ ํ์
์ผ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
โ ์ ์๋ ๊ฒ์ ์ฌ์ฉ
35. Java์์ Lambda ํํ์์ ์ฌ์ฉํ๋ ๋ชฉ์
๋ณ์๋ฅผ ์ง์ ์ ๋ฌํ์ฌ ๊ทธ ๊ฐ์ ๋ณ๊ฒฝํจ์ผ๋ก์จ ํ๋ฆ์ ์ฒ๋ฆฌํ์ง ์๊ณ , ํ์ ์์ฒด
(Behavior Parameter)๋ฅผ ์ ๋ฌํจ์ผ๋ก์จ ํจ์ํ ํ๋ก๊ทธ๋จ์ด ์งํฅํ๋ ๋ฐ๋ฅผ ์ป๊ธฐ ์
ํจ.
๊ธฐ์กด์ ์ด๋ฏธ ์ต๋ช
ํด๋์ค(Anonymous Class)๋ฅผ ํตํด ํด๊ฒฐํ ์๋ ์์๋ ๋ฌธ์ ์ง
๋ง, Lambda์์ ์ฌ์ฉํจ์ผ๋ก์จ ์ฝ๋๋ฅผ ์ข ๋ ๊น๋ํ๊ณ ๊ฐ๋
์ฑ์ ๋์ผ ์ ์๋ค.
์ฆ, โJava์์ Lambda ํํ์์ ์ถ์ ๋ฉ์๋๊ฐ ํ๋๋ง ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ต๋ช
ํด๋์ค ๋์ ๊ตฌํํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ๋ฒโ์ด๋ผ๊ณ ํ ์ ์๋ค.
36. Stream API
Java์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ Collection์ ํ์ดํ๋ผ์ด๋ ํํ๋ก ๋ค๋ฃฐ ์ ์๊ฒ
ํด์ฃผ๋ Java8์ ์๋ก์ด API.
Stream์ ํน์ง
โ No Storage - ๋ฐ์ดํฐ ๋ณด๊ด์ ์ํด ๋ณ๋์ ๊ณต๊ฐ์ ๋ง๋ จํ์ง ์๊ณ
โ Immutable - ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์๋ณธ์ ์กฐ์ํ์ง ์์ผ๋ฉฐ
โ Laziness - ์ต์ข
์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ๋ ํ์ํ ๋์๋ง์ ์ํํ๊ณ
โ Possibly unbounded - ๊ฐ์ ๋ฌดํํ ๊ฐ์ง ์๋ ์์ผ๋ฉฐ
โ Consumable - 1ํ์ฑ์ด๋ค.
์ฆ, ์คํธ๋ฆผ์ ๊ฐ ์์๋ค์ ๋จ ํ๋ฒ๋ง ๋ฐฉ๋ฌธํ๋ค.
37. 38. public class Product {
private int id;
private boolean usable;
private String category;
private int price;
getter / setter ..
}
ํ์ฌ ํ๋งค ์ค์ด๊ณ ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์๋?
39. ํ์ฌ ํ๋งค ์ค์ด๊ณ ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์๋?
public void setProduct() {
Product p1 = new Product(1, true, fashion, 50000);
Product p2 = new Product(2, true, fashion, 38000);
Product p3 = new Product(3, true, it, 250000);
Product p4 = new Product(4, true, it, 85000);
Product p5 = new Product(5, true, it, 99000);
Product p6 = new Product(6, true, it, 75000);
Product p7 = new Product(7, true, furniture, 350000);
Product p8 = new Product(8, false, furniture, 210000);
Product p9 = new Product(9, false, furniture, 58000);
Product p10 = new Product(10, false, it, 120000);
products.add(p1);
products.add(p2);
:
}
40. ํ์ฌ ํ๋งค ์ค์ด๊ณ ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์๋?
public void filterBeforeJava8() {
int count = 0;
for(Product pd : products) {
if(pd.isUsable()
pd.getPrice() = 100000) {
count++;
}
}
System.out.println(ํ์ฌ ํ๋งค ์ค์ด๊ณ ๊ฐ๊ฒฉ์ด ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์ : +
count + ๊ฐ );
}
์ํ๋ชฉ๋ก์์ ๊ฐ๋ณ ์ํ์ ๊ตฌํด์
41. ํ์ฌ ํ๋งค ์ค์ด๊ณ ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์๋?
public void filterBeforeJava8() {
int count = 0;
for(Product pd : products) {
if(pd.isUsable()
pd.getPrice() = 100000) {
count++;
}
}
System.out.println(ํ์ฌ ํ๋งค ์ค์ด๊ณ ๊ฐ๊ฒฉ์ด ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์ : +
count + ๊ฐ );
}
์ํ๋ชฉ๋ก์์ ๊ฐ๋ณ ์ํ์ ๊ตฌํด์
ํ์ฌ ํ๋งค ์ค์ด๊ณ
42. ํ์ฌ ํ๋งค ์ค์ด๊ณ ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์๋?
public void filterBeforeJava8() {
int count = 0;
for(Product pd : products) {
if(pd.isUsable()
pd.getPrice() = 100000) {
count++;
}
}
System.out.println(ํ์ฌ ํ๋งค ์ค์ด๊ณ ๊ฐ๊ฒฉ์ด ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์ : +
count + ๊ฐ );
}
์ํ๋ชฉ๋ก์์ ๊ฐ๋ณ ์ํ์ ๊ตฌํด์
ํ์ฌ ํ๋งค ์ค์ด๊ณ
์ญ๋ง์ ์ดํ๋ผ๋ฉด
43. ํ์ฌ ํ๋งค ์ค์ด๊ณ ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์๋?
public void filterBeforeJava8() {
int count = 0;
for(Product pd : products) {
if(pd.isUsable()
pd.getPrice() = 100000) {
count++;
}
}
System.out.println(ํ์ฌ ํ๋งค ์ค์ด๊ณ ๊ฐ๊ฒฉ์ด ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์ : +
count + ๊ฐ );
}
์ํ๋ชฉ๋ก์์ ๊ฐ๋ณ ์ํ์ ๊ตฌํด์
ํ์ฌ ํ๋งค ์ค์ด๊ณ
์ญ๋ง์ ์ดํ๋ผ๋ฉด
๊ฐ์๋ฅผ 1์ฆ๊ฐ
44. ํ์ฌ ํ๋งค ์ค์ด๊ณ ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์๋?
public void filterJava8() {
long count = products.stream()
.filter(p - p.isUsable())
.filter(p - p.getPrice() = 100000)
.count();
System.out.println(ํ์ฌ ํ๋งค ์ค์ด๊ณ ๊ฐ๊ฒฉ์ด ์ญ๋ง์ ์ดํ์ธ ์ํ์ ๊ฐ์ : +
count + ๊ฐ );
}
์ํ ์ค์์