際際滷

際際滷Share a Scribd company logo
JAVA
油8
貉る┯れ雑豸螳覦
油
油
油
油
油
油
油蠍壱
1.
油JAVA8
油譯殊
油蠍磯
油
2.
油Lambda
油Expression
3.
油Lambda
油Syntax
4.
油Stream
油API
油
 讌 覦 螳 API
  API襯  螳覦  一る所, 螳蟆壱螻, 危危蠍  覦朱 讌 覦
螳 豌襴  .
 Nashorn Javascript 讌
襦 蟆暑 螻焔 JavaScript 讌 蟲 JDK 牛朱 蠍一ヾ API襯 牛 JAVA
 襦蠏碁  讌   .
 レ 覲伎
語 譟危 覃襯 朱 讌 蟯襴 蠍一ヾ 覈襦 企 覃襯 蟆
覲螻 語襯 朱 蟆 覦朱 覦蠑朱.
 Lambda  覦 螳  覃
JAVA8   蠍磯レ Java 襦蠏碁覦 語 覦 弰 蟲   覦 讌
蠍磯レ企.
JAVA8  譯殊 蠍磯
 讌 覦 螳 API
  API襯  螳覦  一る所, 螳蟆壱螻, 危危蠍  覦朱 讌 覦
螳 豌襴  .
 Nashorn Javascript 讌
襦 蟆暑 螻焔 JavaScript 讌 蟲 JDK 牛朱 蠍一ヾ API襯 牛 JAVA
 襦蠏碁  讌   .
 レ 覲伎
語 譟危 覃襯 朱 讌 蟯襴 蠍一ヾ 覈襦 企 覃襯 蟆
覲螻 語襯 朱 蟆 覦朱 覦蠑朱.
 Lambda  覦 螳  覃
JAVA8   蠍磯レ Java 襦蠏碁覦 語 覦 弰 蟲   覦 讌
蠍磯レ企.
JAVA8  譯殊 蠍磯
 讌 覦 螳 API
  API襯  螳覦  一る所, 螳蟆壱螻, 危危蠍  覦朱 讌 覦
螳 豌襴  .
 Nashorn Javascript 讌
襦 蟆暑 螻焔 JavaScript 讌 蟲 JDK 牛朱 蠍一ヾ API襯 牛 JAVA
 襦蠏碁  讌   .
 レ 覲伎
語 譟危 覃襯 朱 讌 蟯襴 蠍一ヾ 覈襦 企 覃襯 蟆
覲螻 語襯 朱 蟆 覦朱 覦蠑朱.
 Lambda  覦 螳  覃
JAVA8   蠍磯レ Java 襦蠏碁覦 語 覦 弰 蟲   覦 讌
蠍磯レ企.
JAVA8  譯殊 蠍磯
 讌 覦 螳 API
  API襯  螳覦  一る所, 螳蟆壱螻, 危危蠍  覦朱 讌 覦
螳 豌襴  .
 Nashorn Javascript 讌
襦 蟆暑 螻焔 JavaScript 讌 蟲 JDK 牛朱 蠍一ヾ API襯 牛 JAVA
 襦蠏碁  讌   .
 レ 覲伎
語 譟危 覃襯 朱 讌 蟯襴 蠍一ヾ 覈襦 企 覃襯 蟆
覲螻 語襯 朱 蟆 覦朱 覦蠑朱.
 Lambda  覦 螳  覃
JAVA8   蠍磯レ Java 襦蠏碁覦 語 覦 弰 蟲   覦 讌
蠍磯レ企.
JAVA8  譯殊 蠍磯
 讌 覦 螳 API
  API襯  螳覦  一る所, 螳蟆壱螻, 危危蠍  覦朱 讌 覦
螳 豌襴  .
 Nashorn Javascript 讌
襦 蟆暑 螻焔 JavaScript 讌 蟲 JDK 牛朱 蠍一ヾ API襯 牛 JAVA
 襦蠏碁  讌   .
 レ 覲伎
語 譟危 覃襯 朱 讌 蟯襴 蠍一ヾ 覈襦 企 覃襯 蟆
覲螻 語襯 朱 蟆 覦朱 覦蠑朱.
 Lambda  覦 螳  覃
JAVA8   蠍磯レ Java 襦蠏碁覦 語 覦 弰 蟲   覦 讌
蠍磯レ企.
JAVA8  譯殊 蠍磯
Java8 Lambda  覦れ企伎
Functional Programming 轟 螳豢蟆 
OOP + FP  覃 れ 語(Multi paradigm language)螳 .
Functional Programming( 襦蠏碁覦)企?
 襦蠏碁覦 襭 豌襴襯   螻一朱 豬蠍螻  螳覲 一危磯ゼ 覃襴 襦蠏碁
覦 れ 企. 覈麹 襦蠏碁覦 襯 覦蠑碁 蟆 螳譟壱 蟆螻朱 襴,  襦蠏碁
覦   螳譟壱.
  覈麹 襦蠏碁覦   谿願 , 覈麹  襦蠏碁  螳
 覦蠖   覿 蠍  .  覓語 覈麹  谿語^ 覈煙 螻, 螳 貊朱 ろ
襦蠏碁  磯 るジ 蟆郁骸螳   . 覦襦  貊  豢 螳 蠏  
 語襷 譟危覩襦 語 x 螳 螳 j  f襯 語覃  f(x)朱 蟆郁骸螳 . 覿 
蟇壱覃 襦蠏碁  危危螻 豸″蠍郁  所 . 願  襦蠏碁覦朱 螳覦る 
 蠍 譴 企.
 覈麹 語 : a朱 覲 1 伎. ()
  語 : a襯 1襦 .
a = 1
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
Lambda Syntax
(語 覈襦 ) - { 蟲覓 }
( int x, int y ) - { return x + y; }
(int x, int y ) - x + y
( ) - Hello, World! 
( x, y ) - x + y
x -  x + 1
public void adder ( int x, int y ) {
return x + y;
}
( int x, int y ) - { return x + y; }
( x, y ) - x + y;
// 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));
 Functional Interface
   豢 覃襯 螳.
  朱 蠍  @FunctionalInterface
譯殊(annotation) 覿  .
( 覦 螳 豢豌 !)
? adder = ( int x, int y ) - x + y
Lambda ?
@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 誤壱伎れ願鍵 覓語 襦 るジ 朱 蟲 螳ロ.
  蟆
Java Lambda   覈
覲襯 讌  蠏 螳 覲蟆渚朱 襴 豌襴讌 螻,  豌
(Behavior Parameter)襯 朱  襦蠏碁 讌ロ 覦襯 至鍵 
.
蠍一ヾ 企 給 企(Anonymous Class)襯 牛 願屋   覓語讌
襷, Lambda 朱 貊襯 譬  蟾螻 螳煙   .
讀, Java Lambda  豢 覃螳 襷  誤壱伎るゼ 給
企  蟲  蟆 伎朱 覦覯企手   .
Stream API
Java 螳 襷  Collection 危殊企 襦 る0  蟆
伎朱 Java8 襦 API.
Stream 轟
 No Storage - 一危 覲願  覲 螻糾 襷讌 螻
 Immutable - 蠍磯蓋朱 覲語 譟一讌 朱
 Laziness - 豕譬 蟆郁骸襯 詞   襷 螻
 Possibly unbounded - 螳 覓危 螳讌  朱
 Consumable - 1煙企.
讀, ろ碁殊 螳 れ  覯襷 覦覓誤.
焔  譴  襷 譴願,
螳蟆 襷 危  螳?
public class Product {
private int id;
private boolean usable;
private String category;
private int price;
getter / setter ..
}
 襷 譴願 襷 危  螳?
 襷 譴願 襷 危  螳?
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);
:
}
 襷 譴願 襷 危  螳?
public void filterBeforeJava8() {
int count = 0;
for(Product pd : products) {
if(pd.isUsable() 
pd.getPrice() = 100000) {
count++;
}
}
System.out.println( 襷 譴願 螳蟆 襷 危  螳 :  +
count + 螳 );
}
覈襦 螳覲  蟲伎
 襷 譴願 襷 危  螳?
public void filterBeforeJava8() {
int count = 0;
for(Product pd : products) {
if(pd.isUsable() 
pd.getPrice() = 100000) {
count++;
}
}
System.out.println( 襷 譴願 螳蟆 襷 危  螳 :  +
count + 螳 );
}
覈襦 螳覲  蟲伎
 襷 譴願
 襷 譴願 襷 危  螳?
public void filterBeforeJava8() {
int count = 0;
for(Product pd : products) {
if(pd.isUsable() 
pd.getPrice() = 100000) {
count++;
}
}
System.out.println( 襷 譴願 螳蟆 襷 危  螳 :  +
count + 螳 );
}
覈襦 螳覲  蟲伎
 襷 譴願
襷 危朱
 襷 譴願 襷 危  螳?
public void filterBeforeJava8() {
int count = 0;
for(Product pd : products) {
if(pd.isUsable() 
pd.getPrice() = 100000) {
count++;
}
}
System.out.println( 襷 譴願 螳蟆 襷 危  螳 :  +
count + 螳 );
}
覈襦 螳覲  蟲伎
 襷 譴願
襷 危朱
螳襯 1讀螳
 襷 譴願 襷 危  螳?
public void filterJava8() {
long count = products.stream()
.filter(p - p.isUsable())
.filter(p - p.getPrice() = 100000)
.count();
System.out.println( 襷 譴願 螳蟆 襷 危  螳 :  +
count + 螳 );
}
 譴

More Related Content

What's hot (20)

覦8 襾語 螻糾
覦8  襾語 螻糾覦8  襾語 螻糾
覦8 襾語 螻糾
Sungchul Park
Java 8 api :: lambda 伎蠍
Java 8 api :: lambda 伎蠍Java 8 api :: lambda 伎蠍
Java 8 api :: lambda 伎蠍
rupert kim
濠 螻 襷覲願 讀蠍磯 ろ碁 API
濠 螻 襷覲願 讀蠍磯 ろ碁 API濠 螻 襷覲願 讀蠍磯 ろ碁 API
濠 螻 襷覲願 讀蠍磯 ろ碁 API
Arawn Park
覦8螳 0=. java8 overview
覦8螳 0=. java8 overview覦8螳 0=. java8 overview
覦8螳 0=. java8 overview
Sejong Park
覦8螳 1=. lambda expression
覦8螳 1=. lambda expression覦8螳 1=. lambda expression
覦8螳 1=. lambda expression
Sejong Park
5 swift 求=戟
5 swift 求=戟5 swift 求=戟
5 swift 求=戟
Changwon National University
6 swift 梶午=戟
6 swift 梶午=戟6 swift 梶午=戟
6 swift 梶午=戟
Changwon National University
JDK 覲豌
JDK 覲豌JDK 覲豌
JDK 覲豌
SeungHyun Eom
Just java
Just javaJust java
Just java
Jong Wook Kim
java 8 れ 螳 覩 螻谿
java 8 れ 螳 覩 螻谿java 8 れ 螳 覩 螻谿
java 8 れ 螳 覩 螻谿
Sungchul Park
3. stream api
3. stream api3. stream api
3. stream api
ル 蟾
求 п梶 襴觀
求 п梶 襴觀求 п梶 襴觀
求 п梶 襴觀
beom kyun choi
願 覦 Chap.14 れ Lambda expression(java)(KOR)
願 覦 Chap.14 れ Lambda expression(java)(KOR)願 覦 Chap.14 れ Lambda expression(java)(KOR)
願 覦 Chap.14 れ Lambda expression(java)(KOR)
MIN SEOK KOO
MVP 螳
MVP  螳MVP  螳
MVP 螳
beom kyun choi
Java lambda
Java lambdaJava lambda
Java lambda
Hyosang Hong
Ji 螳覦 襴觀 (襴狩襦蠏碁襾)
Ji 螳覦 襴觀 (襴狩襦蠏碁襾)Ji 螳覦 襴觀 (襴狩襦蠏碁襾)
Ji 螳覦 襴觀 (襴狩襦蠏碁襾)
beom kyun choi
Javascript 蟲′襭 pdf
Javascript 蟲′襭 pdfJavascript 蟲′襭 pdf
Javascript 蟲′襭 pdf
Hyosang Hong
れ 焔 危危蠍
れ 焔 危危蠍れ 焔 危危蠍
れ 焔 危危蠍
Yongha Yoo
[Main Session] 覩碁 Java 覩碁Μ覲願鍵 - 磯 覦 襦碁ゼ 譴朱
[Main Session] 覩碁 Java 覩碁Μ覲願鍵 - 磯 覦 襦碁ゼ 譴朱[Main Session] 覩碁 Java 覩碁Μ覲願鍵 - 磯 覦 襦碁ゼ 譴朱
[Main Session] 覩碁 Java 覩碁Μ覲願鍵 - 磯 覦 襦碁ゼ 譴朱
Oracle Korea
Swift3 generic
Swift3 genericSwift3 generic
Swift3 generic
Eunjoo Im
覦8 襾語 螻糾
覦8  襾語 螻糾覦8  襾語 螻糾
覦8 襾語 螻糾
Sungchul Park
Java 8 api :: lambda 伎蠍
Java 8 api :: lambda 伎蠍Java 8 api :: lambda 伎蠍
Java 8 api :: lambda 伎蠍
rupert kim
濠 螻 襷覲願 讀蠍磯 ろ碁 API
濠 螻 襷覲願 讀蠍磯 ろ碁 API濠 螻 襷覲願 讀蠍磯 ろ碁 API
濠 螻 襷覲願 讀蠍磯 ろ碁 API
Arawn Park
覦8螳 0=. java8 overview
覦8螳 0=. java8 overview覦8螳 0=. java8 overview
覦8螳 0=. java8 overview
Sejong Park
覦8螳 1=. lambda expression
覦8螳 1=. lambda expression覦8螳 1=. lambda expression
覦8螳 1=. lambda expression
Sejong Park
java 8 れ 螳 覩 螻谿
java 8 れ 螳 覩 螻谿java 8 れ 螳 覩 螻谿
java 8 れ 螳 覩 螻谿
Sungchul Park
3. stream api
3. stream api3. stream api
3. stream api
ル 蟾
願 覦 Chap.14 れ Lambda expression(java)(KOR)
願 覦 Chap.14 れ Lambda expression(java)(KOR)願 覦 Chap.14 れ Lambda expression(java)(KOR)
願 覦 Chap.14 れ Lambda expression(java)(KOR)
MIN SEOK KOO
Ji 螳覦 襴觀 (襴狩襦蠏碁襾)
Ji 螳覦 襴觀 (襴狩襦蠏碁襾)Ji 螳覦 襴觀 (襴狩襦蠏碁襾)
Ji 螳覦 襴觀 (襴狩襦蠏碁襾)
beom kyun choi
Javascript 蟲′襭 pdf
Javascript 蟲′襭 pdfJavascript 蟲′襭 pdf
Javascript 蟲′襭 pdf
Hyosang Hong
れ 焔 危危蠍
れ 焔 危危蠍れ 焔 危危蠍
れ 焔 危危蠍
Yongha Yoo
[Main Session] 覩碁 Java 覩碁Μ覲願鍵 - 磯 覦 襦碁ゼ 譴朱
[Main Session] 覩碁 Java 覩碁Μ覲願鍵 - 磯 覦 襦碁ゼ 譴朱[Main Session] 覩碁 Java 覩碁Μ覲願鍵 - 磯 覦 襦碁ゼ 譴朱
[Main Session] 覩碁 Java 覩碁Μ覲願鍵 - 磯 覦 襦碁ゼ 譴朱
Oracle Korea
Swift3 generic
Swift3 genericSwift3 generic
Swift3 generic
Eunjoo Im

Viewers also liked (9)

React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7
Dongho Cho
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
sung yong jung
覦8 襾語 螻糾
覦8 襾語 螻糾覦8 襾語 螻糾
覦8 襾語 螻糾
Sungchul Park
Beyond Java: 覦 8 譴朱 覲 覦
Beyond Java: 覦 8 譴朱 覲 覦 Beyond Java: 覦 8 譴朱 覲 覦
Beyond Java: 覦 8 譴朱 覲 覦
Sungchul Park
螳 Ip 蟲 伎手鍵
螳 Ip  蟲 伎手鍵螳 Ip  蟲 伎手鍵
螳 Ip 蟲 伎手鍵
beom kyun choi
Redux
 Redux Redux
Redux
Leonardo YongUk Kim
2 YARN 讌ш 覲願鍵
2 YARN 讌ш 覲願鍵2 YARN 讌ш 覲願鍵
2 YARN 讌ш 覲願鍵
beom kyun choi
Zookeeper 螳
Zookeeper 螳Zookeeper 螳
Zookeeper 螳
beom kyun choi
sungmin slide
sungmin slidesungmin slide
sungmin slide
sungminlee
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7
Dongho Cho
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
sung yong jung
覦8 襾語 螻糾
覦8 襾語 螻糾覦8 襾語 螻糾
覦8 襾語 螻糾
Sungchul Park
Beyond Java: 覦 8 譴朱 覲 覦
Beyond Java: 覦 8 譴朱 覲 覦 Beyond Java: 覦 8 譴朱 覲 覦
Beyond Java: 覦 8 譴朱 覲 覦
Sungchul Park
螳 Ip 蟲 伎手鍵
螳 Ip  蟲 伎手鍵螳 Ip  蟲 伎手鍵
螳 Ip 蟲 伎手鍵
beom kyun choi
2 YARN 讌ш 覲願鍵
2 YARN 讌ш 覲願鍵2 YARN 讌ш 覲願鍵
2 YARN 讌ш 覲願鍵
beom kyun choi
sungmin slide
sungmin slidesungmin slide
sungmin slide
sungminlee

Similar to Java8 & Lambda (20)

SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8
Sangmin Lee
Java_10
Java_10 Java_10
Java_10
Hong Hyo Sang
[RAG Tutorial] 02. RAG 梶 危殊.pdf
[RAG Tutorial] 02. RAG 梶 危殊.pdf[RAG Tutorial] 02. RAG 梶 危殊.pdf
[RAG Tutorial] 02. RAG 梶 危殊.pdf
HyunKyu Jeon
[236] ==玩求メ=求梶=求 過п
[236] ==玩求メ=求梶=求 過п[236] ==玩求メ=求梶=求 過п
[236] ==玩求メ=求梶=求 過п
NAVER D2
蟲 螳覦 一 Aws螳 覯襴 ろ豌 蟾譴
蟲 螳覦 一  Aws螳  覯襴 ろ豌  蟾譴蟲 螳覦 一  Aws螳  覯襴 ろ豌  蟾譴
蟲 螳覦 一 Aws螳 覯襴 ろ豌 蟾譴
Amazon Web Services Korea
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
ル旭 豕
畏1粥5液悌悌甦壤估メ悌求估=悌劃悌議劃甓令午估≡估=
畏1粥5液悌悌甦壤估メ悌求估=悌劃悌議劃甓令午估≡估=畏1粥5液悌悌甦壤估メ悌求估=悌劃悌議劃甓令午估≡估=
畏1粥5液悌悌甦壤估メ悌求估=悌劃悌議劃甓令午估≡估=
NAVER D2
覦 8
覦 8覦 8
覦 8
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
Sung-hoon Ma
Tech Update - The Future of .NET Framework (蟾覈 覿)
Tech Update - The Future of .NET Framework (蟾覈 覿)Tech Update - The Future of .NET Framework (蟾覈 覿)
Tech Update - The Future of .NET Framework (蟾覈 覿)
Eunbee Song
[Td 2015]windows, linux, mac 蟆 企. .net 2015 譬讌 c# 伎 豎覲願鍵(蟾覈)
[Td 2015]windows, linux, mac 蟆  企. .net 2015  譬讌 c# 伎 豎覲願鍵(蟾覈)[Td 2015]windows, linux, mac 蟆  企. .net 2015  譬讌 c# 伎 豎覲願鍵(蟾覈)
[Td 2015]windows, linux, mac 蟆 企. .net 2015 譬讌 c# 伎 豎覲願鍵(蟾覈)
Sang Don Kim
PySpark 覦一郁鍵 Ch 06. ML れ 螳蠍
PySpark 覦一郁鍵 Ch 06. ML れ 螳蠍PySpark 覦一郁鍵 Ch 06. ML れ 螳蠍
PySpark 覦一郁鍵 Ch 06. ML れ 螳蠍
谿
D1T1S3 AWS Summit 2024_GSNeotek_Agents_FINAL.pdf
D1T1S3 AWS Summit 2024_GSNeotek_Agents_FINAL.pdfD1T1S3 AWS Summit 2024_GSNeotek_Agents_FINAL.pdf
D1T1S3 AWS Summit 2024_GSNeotek_Agents_FINAL.pdf
parkminj
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...
Kyuhyun Byun
ECMAScript 6 襦 蟆!
ECMAScript 6 襦 蟆!ECMAScript 6 襦 蟆!
ECMAScript 6 襦 蟆!
WooYoung Cho
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1
Hyosang Hong
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1
Hyosang Hong
AWS 覯襴 蠏 觜 豐襴 - 碁2, Community Day 2018 re:Invent 轟
AWS 覯襴 蠏 觜 豐襴 - 碁2, Community Day 2018 re:Invent 轟AWS 覯襴 蠏 觜 豐襴 - 碁2, Community Day 2018 re:Invent 轟
AWS 覯襴 蠏 觜 豐襴 - 碁2, Community Day 2018 re:Invent 轟
AWSKRUG - AWS蟲覈
Aws lambda =戟 メメ求 メ求 =梶
Aws lambda  =戟 メメ求 メ求 =梶Aws lambda  =戟 メメ求 メ求 =梶
Aws lambda =戟 メメ求 メ求 =梶
Junyoung Sung
[ろ襷 ろ磯 2殊姶] AOP
[ろ襷 ろ磯 2殊姶] AOP[ろ襷 ろ磯 2殊姶] AOP
[ろ襷 ろ磯 2殊姶] AOP
AnselmKim
SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8
Sangmin Lee
[RAG Tutorial] 02. RAG 梶 危殊.pdf
[RAG Tutorial] 02. RAG 梶 危殊.pdf[RAG Tutorial] 02. RAG 梶 危殊.pdf
[RAG Tutorial] 02. RAG 梶 危殊.pdf
HyunKyu Jeon
[236] ==玩求メ=求梶=求 過п
[236] ==玩求メ=求梶=求 過п[236] ==玩求メ=求梶=求 過п
[236] ==玩求メ=求梶=求 過п
NAVER D2
蟲 螳覦 一 Aws螳 覯襴 ろ豌 蟾譴
蟲 螳覦 一  Aws螳  覯襴 ろ豌  蟾譴蟲 螳覦 一  Aws螳  覯襴 ろ豌  蟾譴
蟲 螳覦 一 Aws螳 覯襴 ろ豌 蟾譴
Amazon Web Services Korea
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
ル旭 豕
畏1粥5液悌悌甦壤估メ悌求估=悌劃悌議劃甓令午估≡估=
畏1粥5液悌悌甦壤估メ悌求估=悌劃悌議劃甓令午估≡估=畏1粥5液悌悌甦壤估メ悌求估=悌劃悌議劃甓令午估≡估=
畏1粥5液悌悌甦壤估メ悌求估=悌劃悌議劃甓令午估≡估=
NAVER D2
覦 8
覦 8覦 8
覦 8
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
0.逮温厩温壊界姻庄沿岳蠍磯蓋(簡3殊姶)
Sung-hoon Ma
Tech Update - The Future of .NET Framework (蟾覈 覿)
Tech Update - The Future of .NET Framework (蟾覈 覿)Tech Update - The Future of .NET Framework (蟾覈 覿)
Tech Update - The Future of .NET Framework (蟾覈 覿)
Eunbee Song
[Td 2015]windows, linux, mac 蟆 企. .net 2015 譬讌 c# 伎 豎覲願鍵(蟾覈)
[Td 2015]windows, linux, mac 蟆  企. .net 2015  譬讌 c# 伎 豎覲願鍵(蟾覈)[Td 2015]windows, linux, mac 蟆  企. .net 2015  譬讌 c# 伎 豎覲願鍵(蟾覈)
[Td 2015]windows, linux, mac 蟆 企. .net 2015 譬讌 c# 伎 豎覲願鍵(蟾覈)
Sang Don Kim
PySpark 覦一郁鍵 Ch 06. ML れ 螳蠍
PySpark 覦一郁鍵 Ch 06. ML れ 螳蠍PySpark 覦一郁鍵 Ch 06. ML れ 螳蠍
PySpark 覦一郁鍵 Ch 06. ML れ 螳蠍
谿
D1T1S3 AWS Summit 2024_GSNeotek_Agents_FINAL.pdf
D1T1S3 AWS Summit 2024_GSNeotek_Agents_FINAL.pdfD1T1S3 AWS Summit 2024_GSNeotek_Agents_FINAL.pdf
D1T1S3 AWS Summit 2024_GSNeotek_Agents_FINAL.pdf
parkminj
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...
Golang Project Guide from A to Z: From Feature Development to Enterprise Appl...
Kyuhyun Byun
ECMAScript 6 襦 蟆!
ECMAScript 6 襦 蟆!ECMAScript 6 襦 蟆!
ECMAScript 6 襦 蟆!
WooYoung Cho
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1
Hyosang Hong
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1
Hyosang Hong
AWS 覯襴 蠏 觜 豐襴 - 碁2, Community Day 2018 re:Invent 轟
AWS 覯襴 蠏 觜 豐襴 - 碁2, Community Day 2018 re:Invent 轟AWS 覯襴 蠏 觜 豐襴 - 碁2, Community Day 2018 re:Invent 轟
AWS 覯襴 蠏 觜 豐襴 - 碁2, Community Day 2018 re:Invent 轟
AWSKRUG - AWS蟲覈
Aws lambda =戟 メメ求 メ求 =梶
Aws lambda  =戟 メメ求 メ求 =梶Aws lambda  =戟 メメ求 メ求 =梶
Aws lambda =戟 メメ求 メ求 =梶
Junyoung Sung
[ろ襷 ろ磯 2殊姶] AOP
[ろ襷 ろ磯 2殊姶] AOP[ろ襷 ろ磯 2殊姶] AOP
[ろ襷 ろ磯 2殊姶] AOP
AnselmKim

Java8 & Lambda

  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 10. 1.
  • 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 螳 螳 j 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 危殊企 襦 る0 蟆 伎朱 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 + 螳 ); } 譴
  • 45. 襷 譴願 襷 危 螳? public void filterJava8() { long count = products.stream() .filter(p - p.isUsable()) .filter(p - p.getPrice() = 100000) .count(); System.out.println( 襷 譴願 螳蟆 襷 危 螳 : + count + 螳 ); } 譴 襷 譴願
  • 46. 襷 譴願 襷 危 螳? public void filterJava8() { long count = products.stream() .filter(p - p.isUsable()) .filter(p - p.getPrice() = 100000) .count(); System.out.println( 襷 譴願 螳蟆 襷 危 螳 : + count + 螳 ); } 譴 襷 譴願 襷 伎
  • 47. 襷 譴願 襷 危 螳? public void filterJava8() { long count = products.stream() .filter(p - p.isUsable()) .filter(p - p.getPrice() = 100000) .count(); System.out.println( 襷 譴願 螳蟆 襷 危 螳 : + count + 螳 ); } 譴 襷 譴願 襷 伎 螳襯 蟲
  • 48. Stream API : 3螻 蟲 products.stream().filter(p - p.isUsable()).count(); ろ碁 譴螳 一 ろ碁 覲 譬 一 ろ碁
  • 49. ListInteger numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10); public static void filter(ListInteger numbers) { numbers.stream() .filter(value - value % 3 == 0) .forEach(System.out::println); } 3 覦一襯 豢
  • 50. ListInteger numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10); public static void filter(ListInteger numbers) { numbers.stream() .filter(value - value % 3 == 0) .forEach(System.out::println); } 3 覦一襯 豢 譴螳 一 : Stream T filter ( T - boolean ) - 螳 襯 誤伎 譟郁唄 糾骸 襷朱 ろ碁 - 谿 / 蟇一 覦 譟郁唄 語襦
  • 51. ListInteger numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10); public static void filter(ListInteger numbers) { numbers.stream() .filter(value - value % 3 == 0) .forEach(System.out::println); } 3 覦一襯 豢 豕譬 一 : void forEach ( T - void ) - 螳 襯 語襦 豌襴 - 豕譬一一願鍵 覓語 危 ろ碁殊
  • 52. ListInteger numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10); public static void filter(ListInteger numbers) { numbers.stream() .filter(value - value % 3 == 0) .forEach(System.out::println); } 3 覦一襯 豢 覃 谿語^ : るジ class :: method 襦
  • 53. ListInteger numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10); public static void map(ListInteger numbers) { int sum = numbers.stream() .mapToInt(value - value * 2) .sum(); System.out.println(Sum : + sum); } 襴ろ語 覈 螳 2覦 螻 蟲蠍
  • 54. ListInteger numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10); public static void map(ListInteger numbers) { int sum = numbers.stream() .mapToInt(value - value * 2) .sum(); System.out.println(Sum : + sum); } 襴ろ語 覈 螳 2覦 螻 蟲蠍 譴螳 一 : Stream R map ( T - R ) - T 襯 1:1襦 R 襦 覲 ろ碁 - 覲 豌襴 襯 語襦
  • 55. ListInteger numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10); public static void map(ListInteger numbers) { int sum = numbers.stream() .mapToInt(value - value * 2) .sum(); System.out.println(Sum : + sum); } 襴ろ語 覈 螳 2覦 螻 蟲蠍 豕譬 一 : sum(), average(), min(), max() - 螻 : [ int, long, double ] sum() - 蠏 : OptionalDouble average() - 豕螳 : Optional[ Int, Long, Double ] min() - 豕螳 : Optional[ Int, Long, Double ] max()
  • 56. ListInteger numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10); public static void statistics(ListInteger numbers) { IntSummaryStatistics stats = numbers.stream() .mapToInt(value - value * 2) .summaryStatistics(); System.out.println(Sum : + stats.getSum()); System.out.println(Average : + stats.getAverage()); System.out.println(Max Value : + stats.getMax()); System.out.println(Min Value : + stats.getMin()); } 襴ろ語 覈 螳 2覦 螻, 蠏, 豕 / 豕螳 蟲蠍 豕譬 一 : summaryStatistics() - [ Int, Long, Double ] SummaryStatistics summaryStatstics() - 螻, 蠏, 豕螳, 豕螳, 螳 糾
  • 57. // 旧 覲 譴 旧 覦 : JAVA8 伎 private ListOption getUsableOptionsByType(OptionType type) { return select(this.options, having(on(Option.class).isUsable(), equalTo(true)).and( having(on(Option.class).getOptionType(), equalTo(type)))); } // 旧 覲 譴 旧 覦 : JAVA8 private ListOption getUsableOptionsByType(OptionType type) { return options.stream() .filter(o - o.isUsable()) .filter(o - type == o.getOptionType()) .collect(Collectors.toList()); } LambdaJ
  • 58. LambdaJ /** * 豕 旧螳 譟壱 * LambdaJ - Lambda * @return 豕旧螳 */ public long getLowestOptionPrice() { // Java8 伎 : LambdaJ ListOptionCombination activeOptionCombinations = select(getOptionCombinations(), having(on(OptionCombination.class).isUsable(), equalTo(true))); return min(activeOptionCombinations, on(OptionCombination.class).getPrice()); }
  • 59. Lambda /** * 豕 旧螳 譟壱 * LambdaJ - Lambda * @return 豕旧螳 */ public long getLowestOptionPrice() { // Java8 return getOptionCombinations().stream() .filter(s - s.isUsable()) .mapToLong(OptionCombination::getPrice) .min() .getAsLong(); }
  • 60. Lambda レ OOP 語伎 Java 貊襯 燕 蟆 伎. 伎朱 螳蟆壱螻 覈 貊襦 蠏 襯 . Collection filtering, Iteration, Extraction 煙 殊 貊 一煙 覲伎碁.
  • 62. Lambda Closure 谿 - Closure : 覲襯 瑚(close over) 蟆. , 覲 蠏狩 蟆. Closure襯 蠍 伎 Lambda螳 . - Lambda : 給 * Lambda , 蠏碁Μ螻 企 (anonymous function)手 覿襴磯 蠏 煙 螳豌伎 狩も螻 .