SlideShare a Scribd company logo
1 of 16
Download to read offline
JAVA Lambda
์ž‘์„ฑ์ž : ํ™ํšจ์ƒ
์ด๋ฉ”์ผ : hyomee@naver.com
์†Œ์Šค : https://github.com/hyomee/JAVA_EDU
ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ.
๋Š๋ ค๋„ ๊พธ์ค€ํ•˜๋ฉด ๊ฒฝ๊ธฐ์—์„œ ์ด๊ธด๋‹ค.
Content
์†Œ์Šค : https://github.com/hyomee/JAVABASIC
16. Lambda
1. ์ต๋ช…(Anonymous) Class
2. Lambda
3. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
4. ํƒ€์ž… ์ถ”๋ก 
1. ์ต๋ช…(Anonymous) Class
16. Lambda
โ€ข ํ”„๋กœ๊ทธ๋žจ์—์„œ์ผ์‹œ์ ์œผ๋กœํ•œ๋ฒˆ๋งŒ์‚ฌ์šฉ๋˜๊ณ ๋ฒ„๋ ค์ง€๋Š”๊ฐ์ฒด๋ฅผ๋งค๋ฒˆ๊ฐ์ฒด๋ฅผ๋งŒ๋“ค์–ด์•ผํ•˜๋‚˜?
โ€ข ํ™•์žฅ์„ฑ์„๊ณ ๋ คํ•ด์„œ๊ฐ์ฒด๋ฅผ์ƒ์„ฑํ•ด์•ผํ•˜๋Š”๋ฐโ€ฆ์ˆ˜์ •์ดํŽธํ• ๊นŒ?
โ€ข ์‚ฌ์šฉ์ฒ˜:์ธ์Šคํ„ด์Šค๋ณ€์ˆ˜,์ธ์Šคํ„ด์Šค๋ฉ”์„œ๋“œ,์ธ์Šคํ„ด์Šค๋ฉ”์†Œ๋“œ์˜๋งค๊ฐœ๋ณ€์ˆ˜
โ€œ ์ด๋ฆ„์„ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ์ฒด๋กœ ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋ฒ„๋ ค์ง€๋Š” ๊ฐ์ฒดโ€
16-1. ์ต๋ช…(Anonymous) Class
์‚ฌ์šฉํ•˜๋Š” ์ด์œ 
โ€ข ํด๋ž˜์Šค์ƒ์„ฑ
โ€ข ์ธํ„ฐํŽ˜์ด์Šค์˜๊ตฌํ˜„
๊ตฌํ˜„ ํ•˜๋Š” ๋ฐฉ๋ฒ•
01. ํด๋ž˜์Šค์ƒ์„ฑ
โžข 1.์ถ”์ƒํด๋ž˜์Šค์ƒ์„ฑ ์˜ˆ์ œ : AnonymousAbstract.java
์˜ˆ์ œ : https://github.com/hyomee/JAVA_EDU/tree/main/L/src/com/hyomee/anonymous
โžข 2. ์ถ”์ƒํด๋ž˜์Šค ๊ตฌํ˜„ Class ์ƒ์„ฑ
์˜ˆ์ œ : AnonymousAbstarctClass.java - ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
์ต๋ช…(Anonymous) Class
โ€ข ํด๋ž˜์Šค๋ฅผ์ •์˜ํ•˜์ง€์•Š๊ณ ํ•„์š”ํ• ๋•Œ์ด๋ฆ„์—†์ด์ฆ‰์‹œ์„ ์–ธํ•˜๊ณ ์ธ์Šคํ„ด์Šคํ™”ํ•ด์„œ์‚ฌ์šฉ
โ€ข ๊ฐ์ฒด์•ˆ์—๋งŒ๋“œ๋Š”๋กœ์ปฌํด๋ž˜์Šค์™€๋™์ผํ•˜๋‹ค
โ€ข new์ˆ˜์‹์ด์˜ฌ์ˆ˜์žˆ๋Š”๊ณณ์–ด๋””๋“ ์ง€์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‚˜์ƒ์„ฑ์ž๋Š”์ •์˜ํ• ์ˆ˜์—†์Œ
โ€ข ์ต๋ช…ํด๋ž˜์Šค๋‚ด๋ถ€์—์„œ์™ธ๋ถ€์˜๋ฉ”์†Œ๋“œ๋‚ด๋ณ€์ˆ˜๋ฅผ์ฐธ์กฐํ• ๋•Œ๋Š”๋ฉ”์†Œ๋“œ์˜์ง€์—ญ๋ณ€์ˆ˜์ค‘
final๋กœ์„ ์–ธ๋œ๋ณ€์ˆ˜๋งŒ์ฐธ์กฐ๊ฐ€๋Šฅ
-๋ณ€์ˆ˜๋Š”Stack์—์žˆ๊ณ ๊ฐ์ฒด๋Š”Heap์—์žˆ์Œ,์ฆ‰Method์‹คํ–‰์ด๋๋‚˜๊ณ Stack๋Š”์‚ฌ๋ผ์ง€์ง€๋งŒ
Heap์—์žˆ๋Š”Method๋Š”์‚ฌ๋ผ์ง€์ง€์•Š๊ธฐ๋•Œ๋ฌธ
1. ์ต๋ช…(Anonymous) Class
16. Lambda
16-1. ์ต๋ช…(Anonymous) Class
์˜ˆ์ œ : https://github.com/hyomee/JAVA_EDU/tree/main/L/src/com/hyomee/anonymous
โžข 2.์ถ”์ƒํด๋ž˜์Šค ๊ตฌํ˜„ Class ์ƒ์„ฑ
์˜ˆ์ œ : AnonymousAbstarctClass.java - ์ธ์Šคํ„ด์Šค Method
์˜ˆ์ œ : AnonymousAbstarctClass.java - ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฉ”ํ„ฐ
โžข 3. ์‹คํ–‰
โžข 2. ์ถ”์ƒํด๋ž˜์Šค ๊ตฌํ˜„ Class ์ƒ์„ฑ
์˜ˆ์ œ : AnonymousMain.java
ํŒŒ๋ผ๋ฉ”ํ„ฐ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ ํ•˜์—ฌ ํŒŒ๋ผ๋ฉ”ํ„ฐ๋กœ ์ „๋‹ฌ
์˜ˆ์ œ : AnonymousChild .java ์ฐธ์กฐ
1. ์ต๋ช…(Anonymous) Class
16. Lambda
16-1. ์ต๋ช…(Anonymous) Class
02. ์ธํ„ฐํŽ˜์ด์Šค์˜๊ตฌํ˜„
โžข 1. ์ธํ„ฐํŽ˜์ด์Šค๊ตฌํ˜„
์˜ˆ์ œ : https://github.com/hyomee/JAVA_EDU/tree/main/L/src/com/hyomee/anonymous
์˜ˆ์ œ : AnonymousInterface.java
โžข 2. ์ธํ„ฐํŽ˜์ด์Šค๊ตฌํ˜„์ฒด
์˜ˆ์ œ : AnonymousInterfaceClass.java
โžข 3. ์‹คํ–‰
์ต๋ช… ๊ฐ์ฒด ์ƒ์„ฑ
๋žŒ๋‹ค ์ƒ์„ฑ
1. Lambda
16. Lambda
โ€ข ์ž๋ฐ”8์ด์ „์—๋Š”Method๋ผ๋Š”ํ•จ์ˆ˜ํ˜•ํƒœ๊ฐ€์กด์žฌํ•˜์ง€๋งŒ๊ฐ์ฒด๋ฅผํ†ตํ•ด์„œ๋งŒ์ ‘๊ทผ์ด๊ฐ€๋Šฅํ•˜๊ณ ,Method๊ทธ์ž์ฒด๋ฅผ๋ณ€์ˆ˜๋กœ์‚ฌ์šฉํ•˜์ง€๋Š”๋ชปํ•œ๋‹ค.
โ€ข ์ž๋ฐ”8์—์„œ๋Š”ํ•จ์ˆ˜๋ฅผ๋ณ€์ˆ˜์ฒ˜๋Ÿผ์‚ฌ์šฉํ• ์ˆ˜์žˆ๊ธฐ๋•Œ๋ฌธ์—,ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ๋‹ค๋ฅธ๋ฉ”์†Œ๋“œ์˜์ธ์ž๋กœ์ „๋‹ฌํ• ์ˆ˜์žˆ๊ณ ,๋ฆฌํ„ด๊ฐ’์œผ๋กœํ•จ์ˆ˜๋ฅผ๋ฐ›์„์ˆ˜๋„์žˆ๋‹ค.
โ€ข ์ด๋ฆ„์—†๋Š”์ต๋ช…ํ•จ์ˆ˜๊ตฌํ˜„์—์„œ์ฃผ๋กœ์‚ฌ์šฉํ•˜๋ฉฐํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค์˜์ธ์Šคํ„ด์Šค(๊ตฌํ˜„๊ฐ์ฒด)๋ฅผํ‘œํ˜„
:ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค(์ถ”์ƒ๋ฉ”์†Œ๋“œ๊ฐ€ํ•˜๋‚˜์ธ์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ๊ตฌํ˜„๊ฐ์ฒด๋ฅผ๋žŒ๋‹ค์‹์œผ๋กœํ‘œํ˜„
โ€œ ์ž๋ฐ”์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋žจ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ ํ•ด ์ฃผ๋Š” ๋ฌธ๋ฒ•โ€
16-2. Lambda
๋žŒ๋‹ค ( Lambda )
JAVA์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋žจ
โžข ํ•จ์ˆ˜
โ€ข ํ•จ์ˆ˜์ •์˜ ->๊ตฌํ˜„ ->์‚ฌ์šฉ
void fun() {
โ€ฆ
}
fun()
โžข JAVA
โ€ข ํ•จ์ˆ˜๋Š”์—†์Œ
โ€ข Class, Interface ์˜Method
class C {
void method() {
โ€ฆ..
}
}
C c = new C();
c.method();
โžข JAVA Lambda
์ต๋ช… ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ ์šฉ
โ€ข ํ•˜๋‚˜์˜์ถ”์ƒ๋ฉ”์„œ๋“œ๋งŒ์žˆ๋Š”interface ์ƒ์„ฑ-.>์ต๋ช… Class (๋ฉค๋ฒ„๋ณ€์ˆ˜)์ž‘์„ฑ->Lambda๋กœ๋ณ€๊ฒฝ
Interface Example {
R apply(A arg);
}
01. ์ธํ„ฐํŽ˜์ด์Šค
Example exp = new Example() {
@Override
public R apply(A arg) {
body
}
};
02. ์ธ์Šคํ„ด์Šค์ƒ์„ฑ
Example exp = (arg) {
body
};
03. ์ธ์ž๋ชฉ๋ก๊ณผํ•จ์ˆ˜๋ชธํ†ต
์„์ œ์™ธํ•˜๊ณ ๋ชจ๋‘์ œ๊ฑฐ
Example exp = (arg) - >{
body
} ;
04. ๋ฌธ๋ฒ•์ ์šฉ
1. Lambda
16. Lambda
โ€œ ์ž๋ฐ”์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋žจ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ ํ•ด ์ฃผ๋Š” ๋ฌธ๋ฒ•โ€
16-2. Lambda
ํ‘œํ˜„์‹
โ€ข (arg1, arg2...) -> { body }
โ€ข (params) -> expression
โ€ข (params) -> statement
โ€ข (params) -> { statements }
โ€ข (int a, int b) -> { return a + b; };
> ํƒ€์ž… ์ถ”๋ก ์— ์˜ํ•œ ํƒ€์ž… ์ œ๊ฑฐ
: (a, b) -> { return a+b } ;
> ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ๋ฐ˜ํ™˜ ํ•˜๊ฑฐ๋‚˜ ํ•œ ์ค„ ํ‘œํ˜„์‹์ด ๊ฐ€๋Šฅ ํ•˜๋ฉด return ์‚ญ
์ œ
: (a, b) -> a+b;
โ€ข () -> System.out.println("Hello ");
> ํŒŒ๋ผ๋ฏธํ„ฐ์—†๊ณ  Hello ์ถœ๋ ฅ System.out::println;
โ€ข () -> System.out.println("Hello "); // ํŒŒ๋ผ๋ฏธํ„ฐ ์—†๊ณ  Hello ์ถœ๋ ฅ
โ€ข (String s) -> { System.out.println(s); } // String s์ž…๋ ฅ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ์ถœ๋ ฅ
โ€ข () -> 8514790 //ํŒŒ๋ผ๋ฏธํ„ฐ์—†๊ณ  8514790๊ฐ€ ๋ฆฌํ„ด
โ€ข () -> { return 3.14 }; //ํŒŒ๋ผ๋ฏธํ„ฐ์—†๊ณ  3.14๋ฆฌํ„ด
1. Lambda
16. Lambda
16-2. Lambda
์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•œ ๋žŒ๋‹ค
class C {
void method() {
โ€ฆ..
}
}
C c = new C();
c.method();
interface ์ต๋ช… ์ด๋„ˆ ํด๋ž˜์Šค ํ•จ์ˆ˜ ์‹คํ—น
๋ฆฌํ„ด : ์—†์Œ
๋งค๊ฐœ : ์žˆ์Œ
interface IfNoRnNoArg {
void method();
}
IfNoRnNoArg iNrNa = new IfNoRnNoArg() {
void method () {
โ€ฆ
}
};
IfNoRnNoArg iNrNa = ( ) - > { โ€ฆ }; iNrNa.method();
๋ฆฌํ„ด : ์—†์Œ
๋งค๊ฐœ : ์žˆ์Œ
interface IfNoRnArg {
void method(int a);
}
IfNoRnArg iNra = new IfNoRnArg() {
void method( int a ) {
โ€ฆ
}
};
IfNoRnArg iNra = (int a) -> {
โ€ฆ
}
iNra.method(1);
๋ฆฌํ„ด : ์—†์Œ
๋งค๊ฐœ : ์žˆ์Œ
interface IfRnNoArg {
int method();
}
IfRnNoArg irNa = new IfRnNoArg () {
int method() {
int a = 0
โ€ฆ
return a
}
};
IfRnNoArg irNa = () -> {
int a = 10;
return a;
};
irNa.method();
๋ฆฌํ„ด : ์—†์Œ
๋งค๊ฐœ : ์žˆ์Œ
interface IfRnArg {
int method(int a, int b);
}
IfRnArg ira = new IfRnNoArg () {
int method(int a, int b) {
return a + b;
}
};
IfRnArg ira = (a, b) -> {
return a + b;
};
ira.method(5, 10)
๋ฐฐ์—ด
interface IfArray {
int [] method(int length)
}
IfRnArg ira = new IfArray () {
int method(int length) {
return new int[length];
}
};
IfRnArg ira = (length) -> {
return new int[length];
};
or
IfRnArg ira = int[] :: new;
int [] a1 = ira.
ira.method(10);
์˜ˆ์ œ : LambdaFunctional.java
1. Lambda
16. Lambda
16-2. Lambda
์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•œ ๋žŒ๋‹ค
์˜ˆ์ œ : LambdaFunctional.java
1. Lambda
16. Lambda
16-2. Lambda
์กด์žฌ ํ•˜๋Š” ๊ฐ์ฒด ๋žŒ๋‹ค ํ‘œํ˜„
์˜ˆ์ œ : ExistsClassLamda.java
01. ๊ฐ์ฒด์ƒ์„ฑ
๋žŒ๋‹ค๋กœ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ๋ฒ•
๋žŒ๋‹ค ์„ ์–ธ ๋ฐฉ๋ฒ• : ํด๋ž˜์Šค๊ฐ์ฒด :: ์ธ์Šคํ„ด์Šค๋ฉ”์„œ๋“œ๋ช…
1. Lambda
16. Lambda
16-2. Lambda
์กด์žฌ ํ•˜๋Š” ๊ฐ์ฒด ๋žŒ๋‹ค ํ‘œํ˜„
์˜ˆ์ œ : ExistsClassLamda.java
02. ๊ธฐ์กด ๊ฐ์ฒด์˜๋ฉ”์„œ๋“œ์‹คํ–‰
ํด๋ž˜์Šค์˜ ๊ธฐ์กด ํ•จ์ˆ˜ ์ง€์ •
๋žŒ๋‹ค ์„ ์–ธ ๋ฐฉ๋ฒ• : ํด๋ž˜์Šค๊ฐ์ฒด :: ์ธ์Šคํ„ด์Šค๋ฉ”์„œ๋“œ๋ช…
ํด๋ž˜์Šค์˜ ๊ธฐ์กด ํ•จ์ˆ˜ ์„ ํƒ
ํด๋ž˜์Šค์˜ ๊ธฐ์กด ํ•จ์ˆ˜ ์„ ํƒ
๋žŒ๋‹ค๋กœ Class ์ƒ์„ฑ
1. Lambda
16. Lambda
16-2. Lambda
์กด์žฌ ํ•˜๋Š” ๊ฐ์ฒด ๋žŒ๋‹ค ํ‘œํ˜„
์˜ˆ์ œ : ExistsClassLamda.java
03. Static ๋ฉ”์„œ๋“œ์‹คํ–‰ ๋žŒ๋‹ค ์„ ์–ธ ๋ฐฉ๋ฒ• : ํด๋ž˜์Šค๊ฐ์ฒด :: ์ •์ ๋ฉ”์„œ๋“œ๋ช…
04. ์ฒซ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ ํ•จ
๊ฐ์ฒด๋ฅผ ๋ฉ”์†Œ๋“œ ๋‚ด๋ถ€๋กœ ๋ณด๋ƒˆ์œผ๋ฏ€๋กœ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ์ƒ์„ฑ
ํ•  ํ•„์š” ์—†์Œ
1. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
16. Lambda
16-3. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
โ€ข ์ถ”์ƒMethod๊ฐ€ํ•˜๋‚˜๋ฟ์ธ์ธํ„ฐํŽ˜์ด์Šค(Single Abstract Method:SAM)
โ€ข ์—ฌ๋Ÿฌ๊ฐœ์˜Default Method๊ฐ€์žˆ์„์ˆ˜์žˆ๋‹ค.
โ€ข @FunctionalInterface ์–ด๋…ธํ…Œ์ด์…˜์€ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค
โ€ข Runnable, ActionListener, Comparable์€ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค
:์ž๋ฐ”8์ด์ „:์ต๋ช…ํด๋ž˜์Šค์ด์šฉ
:์ž๋ฐ”8์ดํ›„:๋žŒ๋‹ค์‹์ด์šฉ
java.util.function ์—์„œ ์ œ๊ณต ํ•˜๋Š” ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
โ€ข Predicate: ํ•˜๋‚˜์˜๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ์ฃผ๋Š”booleanํ˜•์„ ๋ฐ˜ํ™˜
โ€ข Consumer:ํ•˜๋‚˜์˜๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ์ฃผ๋Š”voidํ˜•accept ๋ฉ”์†Œ๋“œ
โ€ข Function: T์œ ํ˜•์˜์ธ์ˆ˜๋ฅผ์ทจํ•˜๊ณ R์œ ํ˜•์˜๊ฒฐ๊ณผ๋ฅผ๋ฐ˜ํ™˜ํ•˜๋Š”์ถ”์ƒ๋ฉ”์†Œ๋“œapply
โ€ข Supplier: ๋ฉ”์†Œ๋“œ์ธ์ž๋Š”์—†๊ณ T์œ ํ˜•์˜๊ฒฐ๊ณผ๋ฅผ๋ฐ˜ํ™˜ํ•˜๋Š”์ถ”์ƒ๋ฉ”์†Œ๋“œget
โ€ข UnaryOperator:ํ•˜๋‚˜์˜์ธ์ž์™€๋ฆฌํ„ดํƒ€์ž…์„๊ฐ€์ง„๋‹ค. T->T
โ€ข BinaryOperator:๋‘๊ฐœ์˜์ธ์ˆ˜,๋™์ผํ•œํƒ€์ž…์˜๊ฒฐ๊ณผ๋ฅผ๋ฐ˜ํ™˜ํ•˜๋Š”์ถ”์ƒ๋ฉ”์„œ๋“œapply
01. ๊ฐ€์žฅ๊ธฐ๋ณธ์ด๋˜๋Š”ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค
02. ํŒŒ๋ผ๋ฉ”ํ„ฐ๊ฐ€๋‘๊ฐœ์ธํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค
03. ํŒŒ๋ผ๋ฉ”ํ„ฐ๋ฅผ๋ฐ›๊ณ ๋™์ผํ•œํƒ€์ž…์„๋ฆฌํ„ดํ•˜๋Š”ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค
04. ๊ธฐ๋ณธํ˜•ํƒ€์ž…์˜ํ•จ์ˆ˜ํ˜•์ธํผํŽ˜์ด์Šค
1. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
16. Lambda
16-3. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
(3 +3) * 2
10 > 5 and 10 < 6
10 > 5 or 10 < 6
1. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
16. Lambda
16-3. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
05. Stream๊ณผ๊ฐ™์ด์‚ฌ์šฉํ•˜๋Š”ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค
1. ํƒ€์ž… ์ถ”๋ก 
16. Lambda
16-3. ํƒ€์ž… ์ถ”๋ก 
ํƒ€์ž… ์ถ”๋ก 
โ€ข ์ž๋ฐ”์ปดํŒŒ์ผ๋Ÿฌ๋Š”๋žŒ๋‹คํ‘œํ˜„์‹์ด์‚ฌ์šฉ๋œ์ปจํ…์ŠคํŠธ(๋Œ€์ƒํ˜•์‹)๋ฅผ์ด์šฉํ•ด์„œ๋žŒ๋‹คํ‘œํ˜„์‹๊ณผ๊ด€๋ จ๋œํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค๋ฅผ์ถ”๋ก ํ•œ๋‹ค.
โ€ข ์ฆ‰,๋Œ€์ƒํ˜•์‹์„์ด์šฉํ•ด์„œํ•จ์ˆ˜๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ์•Œ์ˆ˜์žˆ์œผ๋ฏ€๋กœ์ปดํŒŒ์ผ๋Ÿฌ๋Š”๋žŒ๋‹ค์˜์‹œ๊ทธ๋‹ˆ์ฒ˜๋„์ถ”๋ก ํ• ์ˆ˜์žˆ๋‹ค.
โ€ข ๊ฒฐ๊ณผ์ ์œผ๋กœ์ปดํŒŒ์ผ๋Ÿฌ๋Š”๋žŒ๋‹คํ‘œํ˜„์‹์˜ํŒŒ๋ผ๋ฏธํ„ฐํ˜•์‹์—์ ‘๊ทผํ• ์ˆ˜์žˆ์œผ๋ฏ€๋กœ๋žŒ๋‹ค๋ฌธ๋ฒ•์—์„œ์ด๋ฅผ์ƒ๋žตํ• ์ˆ˜์žˆ๋‹ค.
โ€ข ์ฆ‰,์ž๋ฐ”์ปดํŒŒ์ผ๋Ÿฌ๋Š”๋‹ค์Œ์ฒ˜๋Ÿผ๋žŒ๋‹คํŒŒ๋ผ๋ฏธํ„ฐํ˜•์‹์„์ถ”๋ก ํ• ์ˆ˜์žˆ๋‹ค.
โ€ข ์—ฌ๋ŸฌํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผํฌํ•จํ•˜๋Š”๋žŒ๋‹คํ‘œํ˜„์‹์—์„œ๋Š”์ฝ”๋“œ๊ฐ€๋…์„ฑํ–ฅ์ƒ์ด๋”๋‘๋“œ๋Ÿฌ์ง„๋‹ค.
interface IfRnArg {
int method(int a, int b);
}
IfRnArg ira = new IfRnNoArg () {
int method(int a, int b)
{
return a + b;
}
};
IfRnArg ira = (int a, int b) -> {
return a + b;
};
IfRnArg ira = (a, b) -> {
return a + b;
};

More Related Content

What's hot

JDK ๋ณ€์ฒœ์‚ฌ
JDK ๋ณ€์ฒœ์‚ฌJDK ๋ณ€์ฒœ์‚ฌ
JDK ๋ณ€์ฒœ์‚ฌSeungHyun Eom
ย 
0.javascript๊ธฐ๋ณธ(~3์ผ์ฐจ๋‚ด)
0.javascript๊ธฐ๋ณธ(~3์ผ์ฐจ๋‚ด)0.javascript๊ธฐ๋ณธ(~3์ผ์ฐจ๋‚ด)
0.javascript๊ธฐ๋ณธ(~3์ผ์ฐจ๋‚ด)Sung-hoon Ma
ย 
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E03 - Javascript intro.
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E03 - Javascript intro.ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E03 - Javascript intro.
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E03 - Javascript intro.Young-Beom Rhee
ย 
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJava Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJavajigi Jaesung
ย 
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฌธ๋ฒ•~ํ•จ์ˆ˜๊ธฐ์ดˆ
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฌธ๋ฒ•~ํ•จ์ˆ˜๊ธฐ์ดˆ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฌธ๋ฒ•~ํ•จ์ˆ˜๊ธฐ์ดˆ
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฌธ๋ฒ•~ํ•จ์ˆ˜๊ธฐ์ดˆ์ง„์ˆ˜ ์ •
ย 
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E04 js function
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E04 js functionํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E04 js function
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E04 js functionYoung-Beom Rhee
ย 
Java(1/4)
Java(1/4)Java(1/4)
Java(1/4)handfoot
ย 
Java(2/4)
Java(2/4)Java(2/4)
Java(2/4)handfoot
ย 
Javascript ๊ต์œก์ž๋ฃŒ pdf
Javascript ๊ต์œก์ž๋ฃŒ pdfJavascript ๊ต์œก์ž๋ฃŒ pdf
Javascript ๊ต์œก์ž๋ฃŒ pdfHyosang Hong
ย 
์Šค์œ„ํ”„ํŠธ, ์ฝ”ํ‹€๋ฆฐ๊ณผ ๋ชจ๋˜์–ธ์–ด์˜ ํŠน์ง• (Swift, Kotlin and Modern Languages)
์Šค์œ„ํ”„ํŠธ, ์ฝ”ํ‹€๋ฆฐ๊ณผ ๋ชจ๋˜์–ธ์–ด์˜ ํŠน์ง• (Swift, Kotlin and Modern Languages)์Šค์œ„ํ”„ํŠธ, ์ฝ”ํ‹€๋ฆฐ๊ณผ ๋ชจ๋˜์–ธ์–ด์˜ ํŠน์ง• (Swift, Kotlin and Modern Languages)
์Šค์œ„ํ”„ํŠธ, ์ฝ”ํ‹€๋ฆฐ๊ณผ ๋ชจ๋˜์–ธ์–ด์˜ ํŠน์ง• (Swift, Kotlin and Modern Languages)Yongha Yoo
ย 
์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค 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
ย 
Realm.io for iOS
Realm.io for iOSRealm.io for iOS
Realm.io for iOSEunjoo Im
ย 
[Main Session] ๋ฏธ๋ž˜์˜ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์•ฐ๋ฒ„์™€ ๋ฐœํ• ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ
[Main Session] ๋ฏธ๋ž˜์˜ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์•ฐ๋ฒ„์™€ ๋ฐœํ• ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ[Main Session] ๋ฏธ๋ž˜์˜ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์•ฐ๋ฒ„์™€ ๋ฐœํ• ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ
[Main Session] ๋ฏธ๋ž˜์˜ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์•ฐ๋ฒ„์™€ ๋ฐœํ• ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœOracle Korea
ย 
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐ
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐjava 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐ
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐSungchul Park
ย 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascriptJinKyoungHeo
ย 
ํŒŒ์ด์ฌ ๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐ
ํŒŒ์ด์ฌ ๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐํŒŒ์ด์ฌ ๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐ
ํŒŒ์ด์ฌ ๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐYong Joon Moon
ย 

What's hot (17)

JDK ๋ณ€์ฒœ์‚ฌ
JDK ๋ณ€์ฒœ์‚ฌJDK ๋ณ€์ฒœ์‚ฌ
JDK ๋ณ€์ฒœ์‚ฌ
ย 
0.javascript๊ธฐ๋ณธ(~3์ผ์ฐจ๋‚ด)
0.javascript๊ธฐ๋ณธ(~3์ผ์ฐจ๋‚ด)0.javascript๊ธฐ๋ณธ(~3์ผ์ฐจ๋‚ด)
0.javascript๊ธฐ๋ณธ(~3์ผ์ฐจ๋‚ด)
ย 
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E03 - Javascript intro.
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E03 - Javascript intro.ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E03 - Javascript intro.
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E03 - Javascript intro.
ย 
Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJava Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
ย 
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฌธ๋ฒ•~ํ•จ์ˆ˜๊ธฐ์ดˆ
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฌธ๋ฒ•~ํ•จ์ˆ˜๊ธฐ์ดˆ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฌธ๋ฒ•~ํ•จ์ˆ˜๊ธฐ์ดˆ
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฌธ๋ฒ•~ํ•จ์ˆ˜๊ธฐ์ดˆ
ย 
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E04 js function
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E04 js functionํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E04 js function
ํ”„๋ก ํŠธ์—”๋“œ์Šคํ„ฐ๋”” E04 js function
ย 
Java(1/4)
Java(1/4)Java(1/4)
Java(1/4)
ย 
Java(2/4)
Java(2/4)Java(2/4)
Java(2/4)
ย 
3-1. css
3-1. css3-1. css
3-1. css
ย 
Javascript ๊ต์œก์ž๋ฃŒ pdf
Javascript ๊ต์œก์ž๋ฃŒ pdfJavascript ๊ต์œก์ž๋ฃŒ pdf
Javascript ๊ต์œก์ž๋ฃŒ pdf
ย 
์Šค์œ„ํ”„ํŠธ, ์ฝ”ํ‹€๋ฆฐ๊ณผ ๋ชจ๋˜์–ธ์–ด์˜ ํŠน์ง• (Swift, Kotlin and Modern Languages)
์Šค์œ„ํ”„ํŠธ, ์ฝ”ํ‹€๋ฆฐ๊ณผ ๋ชจ๋˜์–ธ์–ด์˜ ํŠน์ง• (Swift, Kotlin and Modern Languages)์Šค์œ„ํ”„ํŠธ, ์ฝ”ํ‹€๋ฆฐ๊ณผ ๋ชจ๋˜์–ธ์–ด์˜ ํŠน์ง• (Swift, Kotlin and Modern Languages)
์Šค์œ„ํ”„ํŠธ, ์ฝ”ํ‹€๋ฆฐ๊ณผ ๋ชจ๋˜์–ธ์–ด์˜ ํŠน์ง• (Swift, Kotlin and Modern Languages)
ย 
์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค Chap.14 ๋žŒ๋‹ค์‹ Lambda expression(java)(KOR)
์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค Chap.14 ๋žŒ๋‹ค์‹ Lambda expression(java)(KOR)์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค Chap.14 ๋žŒ๋‹ค์‹ Lambda expression(java)(KOR)
์ด๊ฒƒ์ด ์ž๋ฐ”๋‹ค Chap.14 ๋žŒ๋‹ค์‹ Lambda expression(java)(KOR)
ย 
Realm.io for iOS
Realm.io for iOSRealm.io for iOS
Realm.io for iOS
ย 
[Main Session] ๋ฏธ๋ž˜์˜ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์•ฐ๋ฒ„์™€ ๋ฐœํ• ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ
[Main Session] ๋ฏธ๋ž˜์˜ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์•ฐ๋ฒ„์™€ ๋ฐœํ• ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ[Main Session] ๋ฏธ๋ž˜์˜ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์•ฐ๋ฒ„์™€ ๋ฐœํ• ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ
[Main Session] ๋ฏธ๋ž˜์˜ Java ๋ฏธ๋ฆฌ๋ณด๊ธฐ - ์•ฐ๋ฒ„์™€ ๋ฐœํ• ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ
ย 
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐ
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐjava 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐ
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐ
ย 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
ย 
ํŒŒ์ด์ฌ ๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐ
ํŒŒ์ด์ฌ ๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐํŒŒ์ด์ฌ ๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐ
ํŒŒ์ด์ฌ ๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐ
ย 

Similar to Java lambda

SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8Sangmin Lee
ย 
์ž๋ฐ”8๊ฐ•์˜ 1แ„€แ…กแ†ผ. lambda expression
์ž๋ฐ”8๊ฐ•์˜ 1แ„€แ…กแ†ผ. lambda expression์ž๋ฐ”8๊ฐ•์˜ 1แ„€แ…กแ†ผ. lambda expression
์ž๋ฐ”8๊ฐ•์˜ 1แ„€แ…กแ†ผ. lambda expressionSejong Park
ย 
์ž๋ฐ” 8 ํ•™์Šต
์ž๋ฐ” 8 ํ•™์Šต์ž๋ฐ” 8 ํ•™์Šต
์ž๋ฐ” 8 ํ•™์ŠตHeeChang Lee
ย 
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ   แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซแ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ   แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซdaewon jeong
ย 
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐPark JoongSoo
ย 
Java8 ๋žŒ๋‹ค
Java8 ๋žŒ๋‹คJava8 ๋žŒ๋‹ค
Java8 ๋žŒ๋‹คJong Woo Rhee
ย 
Ai C#์„ธ๋ฏธ๋‚˜
Ai C#์„ธ๋ฏธ๋‚˜Ai C#์„ธ๋ฏธ๋‚˜
Ai C#์„ธ๋ฏธ๋‚˜Astin Choi
ย 
์ž๋ฐ” 8
์ž๋ฐ” 8์ž๋ฐ” 8
์ž๋ฐ” 8์‹  ํ•œ
ย 
AWS SAM์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ ์šด์˜ํ•˜๊ธฐ - ์ด์žฌ๋ฉด(๋งˆ์ด๋ฎค์งํ…Œ์ด์ŠคํŠธ) :: AWS Community Day 2020
AWS SAM์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ ์šด์˜ํ•˜๊ธฐ - ์ด์žฌ๋ฉด(๋งˆ์ด๋ฎค์งํ…Œ์ด์ŠคํŠธ) :: AWS Community Day 2020 AWS SAM์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ ์šด์˜ํ•˜๊ธฐ - ์ด์žฌ๋ฉด(๋งˆ์ด๋ฎค์งํ…Œ์ด์ŠคํŠธ) :: AWS Community Day 2020
AWS SAM์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ ์šด์˜ํ•˜๊ธฐ - ์ด์žฌ๋ฉด(๋งˆ์ด๋ฎค์งํ…Œ์ด์ŠคํŠธ) :: AWS Community Day 2020 AWSKRUG - AWSํ•œ๊ตญ์‚ฌ์šฉ์ž๋ชจ์ž„
ย 
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1Hyosang Hong
ย 
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1Hyosang Hong
ย 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initializationEunjoo Im
ย 
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)JiandSon
ย 
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹TonyCms
ย 
Clojure/Chapter3
Clojure/Chapter3Clojure/Chapter3
Clojure/Chapter3destinycs
ย 
ECMAScript 6์˜ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค!
ECMAScript 6์˜ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค!ECMAScript 6์˜ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค!
ECMAScript 6์˜ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค!WooYoung Cho
ย 
์ž๋ฐ”์™€ ์‚ฌ์šฉํ•˜๊ธฐ2
์ž๋ฐ”์™€ ์‚ฌ์šฉํ•˜๊ธฐ2์ž๋ฐ”์™€ ์‚ฌ์šฉํ•˜๊ธฐ2
์ž๋ฐ”์™€ ์‚ฌ์šฉํ•˜๊ธฐ2destinycs
ย 
๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ค€ํ˜ ์ด
ย 

Similar to Java lambda (20)

SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8
ย 
์ž๋ฐ”8๊ฐ•์˜ 1แ„€แ…กแ†ผ. lambda expression
์ž๋ฐ”8๊ฐ•์˜ 1แ„€แ…กแ†ผ. lambda expression์ž๋ฐ”8๊ฐ•์˜ 1แ„€แ…กแ†ผ. lambda expression
์ž๋ฐ”8๊ฐ•์˜ 1แ„€แ…กแ†ผ. lambda expression
ย 
Java8 & Lambda
Java8 & LambdaJava8 & Lambda
Java8 & Lambda
ย 
์ž๋ฐ” 8 ํ•™์Šต
์ž๋ฐ” 8 ํ•™์Šต์ž๋ฐ” 8 ํ•™์Šต
์ž๋ฐ” 8 ํ•™์Šต
ย 
Java jungsuk3 ch14_lambda_stream
Java jungsuk3 ch14_lambda_streamJava jungsuk3 ch14_lambda_stream
Java jungsuk3 ch14_lambda_stream
ย 
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ   แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซแ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ   แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
แ„‚แ…กแ„‹แ…ฆ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ แ„Œแ…ตแ„‹แ…ขแ†ซแ„‰แ…ฅแ†ซ
ย 
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
์ผ๋‹จ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ
ย 
Java8 ๋žŒ๋‹ค
Java8 ๋žŒ๋‹คJava8 ๋žŒ๋‹ค
Java8 ๋žŒ๋‹ค
ย 
Ai C#์„ธ๋ฏธ๋‚˜
Ai C#์„ธ๋ฏธ๋‚˜Ai C#์„ธ๋ฏธ๋‚˜
Ai C#์„ธ๋ฏธ๋‚˜
ย 
์ž๋ฐ” 8
์ž๋ฐ” 8์ž๋ฐ” 8
์ž๋ฐ” 8
ย 
AWS SAM์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ ์šด์˜ํ•˜๊ธฐ - ์ด์žฌ๋ฉด(๋งˆ์ด๋ฎค์งํ…Œ์ด์ŠคํŠธ) :: AWS Community Day 2020
AWS SAM์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ ์šด์˜ํ•˜๊ธฐ - ์ด์žฌ๋ฉด(๋งˆ์ด๋ฎค์งํ…Œ์ด์ŠคํŠธ) :: AWS Community Day 2020 AWS SAM์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ ์šด์˜ํ•˜๊ธฐ - ์ด์žฌ๋ฉด(๋งˆ์ด๋ฎค์งํ…Œ์ด์ŠคํŠธ) :: AWS Community Day 2020
AWS SAM์œผ๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ ์šด์˜ํ•˜๊ธฐ - ์ด์žฌ๋ฉด(๋งˆ์ด๋ฎค์งํ…Œ์ด์ŠคํŠธ) :: AWS Community Day 2020
ย 
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1
ย 
Java stream v0.1
Java stream v0.1Java stream v0.1
Java stream v0.1
ย 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initialization
ย 
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
2014.07.26 KSUG์™€ ์ง€์•ค์„ ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ…Œํฌ๋‹ˆ์ปฌ ์„ธ๋ฏธ๋‚˜ - แ„‚แ…ก์˜ แ„Žแ…ฅแ†บแ„‡แ…ฅแ†ซแ„แ…ข แ„Œแ…กแ„‡แ…ก8 แ„…แ…กแ†ทแ„ƒแ…กแ„‰แ…ตแ†จ (์ •๋Œ€์›)
ย 
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
Cpp์—์„œ ํ™œ์šฉํ•ด๋ณด๋Š” Lambda์‹
ย 
Clojure/Chapter3
Clojure/Chapter3Clojure/Chapter3
Clojure/Chapter3
ย 
ECMAScript 6์˜ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค!
ECMAScript 6์˜ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค!ECMAScript 6์˜ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค!
ECMAScript 6์˜ ์ƒˆ๋กœ์šด ๊ฒƒ๋“ค!
ย 
์ž๋ฐ”์™€ ์‚ฌ์šฉํ•˜๊ธฐ2
์ž๋ฐ”์™€ ์‚ฌ์šฉํ•˜๊ธฐ2์ž๋ฐ”์™€ ์‚ฌ์šฉํ•˜๊ธฐ2
์ž๋ฐ”์™€ ์‚ฌ์šฉํ•˜๊ธฐ2
ย 
๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
ย 

More from Hyosang Hong

MSA_๊ธฐ์ดˆ์ž๋ฃŒ.pdf
MSA_๊ธฐ์ดˆ์ž๋ฃŒ.pdfMSA_๊ธฐ์ดˆ์ž๋ฃŒ.pdf
MSA_๊ธฐ์ดˆ์ž๋ฃŒ.pdfHyosang Hong
ย 
Java ์—ฐ์‚ฐ์ž
Java ์—ฐ์‚ฐ์žJava ์—ฐ์‚ฐ์ž
Java ์—ฐ์‚ฐ์žHyosang Hong
ย 
Java generic
Java genericJava generic
Java genericHyosang Hong
ย 
Java ์ œ์–ด
Java ์ œ์–ดJava ์ œ์–ด
Java ์ œ์–ดHyosang Hong
ย 
Java collection
Java collectionJava collection
Java collectionHyosang Hong
ย 
Spring ๊ต์œก ์ž๋ฃŒ
Spring ๊ต์œก ์ž๋ฃŒSpring ๊ต์œก ์ž๋ฃŒ
Spring ๊ต์œก ์ž๋ฃŒHyosang Hong
ย 
Map struct
Map structMap struct
Map structHyosang Hong
ย 
Kafka ์ž๋ฃŒ v0.1
Kafka ์ž๋ฃŒ v0.1Kafka ์ž๋ฃŒ v0.1
Kafka ์ž๋ฃŒ v0.1Hyosang Hong
ย 
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒJpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒHyosang Hong
ย 
Java ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ 20210405
Java ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ 20210405Java ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ 20210405
Java ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ 20210405Hyosang Hong
ย 
Java ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
Java ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™Java ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
Java ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™Hyosang Hong
ย 
Spring ๊ต์œก ์ž๋ฃŒ
Spring ๊ต์œก ์ž๋ฃŒSpring ๊ต์œก ์ž๋ฃŒ
Spring ๊ต์œก ์ž๋ฃŒHyosang Hong
ย 
Map struct
Map structMap struct
Map structHyosang Hong
ย 
Kafka ์ž๋ฃŒ v0.1
Kafka ์ž๋ฃŒ v0.1Kafka ์ž๋ฃŒ v0.1
Kafka ์ž๋ฃŒ v0.1Hyosang Hong
ย 
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒJpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒHyosang Hong
ย 
์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™Hyosang Hong
ย 

More from Hyosang Hong (18)

MSA_๊ธฐ์ดˆ์ž๋ฃŒ.pdf
MSA_๊ธฐ์ดˆ์ž๋ฃŒ.pdfMSA_๊ธฐ์ดˆ์ž๋ฃŒ.pdf
MSA_๊ธฐ์ดˆ์ž๋ฃŒ.pdf
ย 
Java ์—ฐ์‚ฐ์ž
Java ์—ฐ์‚ฐ์žJava ์—ฐ์‚ฐ์ž
Java ์—ฐ์‚ฐ์ž
ย 
Java generic
Java genericJava generic
Java generic
ย 
Java ์ œ์–ด
Java ์ œ์–ดJava ์ œ์–ด
Java ์ œ์–ด
ย 
Java collection
Java collectionJava collection
Java collection
ย 
Spring ๊ต์œก ์ž๋ฃŒ
Spring ๊ต์œก ์ž๋ฃŒSpring ๊ต์œก ์ž๋ฃŒ
Spring ๊ต์œก ์ž๋ฃŒ
ย 
Map struct
Map structMap struct
Map struct
ย 
Kafka ์ž๋ฃŒ v0.1
Kafka ์ž๋ฃŒ v0.1Kafka ์ž๋ฃŒ v0.1
Kafka ์ž๋ฃŒ v0.1
ย 
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒJpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
ย 
Java ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ 20210405
Java ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ 20210405Java ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ 20210405
Java ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ 20210405
ย 
Java ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
Java ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™Java ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
Java ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
ย 
Enum
EnumEnum
Enum
ย 
Spring ๊ต์œก ์ž๋ฃŒ
Spring ๊ต์œก ์ž๋ฃŒSpring ๊ต์œก ์ž๋ฃŒ
Spring ๊ต์œก ์ž๋ฃŒ
ย 
Map struct
Map structMap struct
Map struct
ย 
Kafka ์ž๋ฃŒ v0.1
Kafka ์ž๋ฃŒ v0.1Kafka ์ž๋ฃŒ v0.1
Kafka ์ž๋ฃŒ v0.1
ย 
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒJpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
Jpa ์ฟผ๋ฆฌ ํฌํ•จ ์ž๋ฃŒ
ย 
์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ์›์น™
ย 
Enum
EnumEnum
Enum
ย 

Java lambda

  • 1. JAVA Lambda ์ž‘์„ฑ์ž : ํ™ํšจ์ƒ ์ด๋ฉ”์ผ : hyomee@naver.com ์†Œ์Šค : https://github.com/hyomee/JAVA_EDU ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. ๋Š๋ ค๋„ ๊พธ์ค€ํ•˜๋ฉด ๊ฒฝ๊ธฐ์—์„œ ์ด๊ธด๋‹ค.
  • 2. Content ์†Œ์Šค : https://github.com/hyomee/JAVABASIC 16. Lambda 1. ์ต๋ช…(Anonymous) Class 2. Lambda 3. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค 4. ํƒ€์ž… ์ถ”๋ก 
  • 3. 1. ์ต๋ช…(Anonymous) Class 16. Lambda โ€ข ํ”„๋กœ๊ทธ๋žจ์—์„œ์ผ์‹œ์ ์œผ๋กœํ•œ๋ฒˆ๋งŒ์‚ฌ์šฉ๋˜๊ณ ๋ฒ„๋ ค์ง€๋Š”๊ฐ์ฒด๋ฅผ๋งค๋ฒˆ๊ฐ์ฒด๋ฅผ๋งŒ๋“ค์–ด์•ผํ•˜๋‚˜? โ€ข ํ™•์žฅ์„ฑ์„๊ณ ๋ คํ•ด์„œ๊ฐ์ฒด๋ฅผ์ƒ์„ฑํ•ด์•ผํ•˜๋Š”๋ฐโ€ฆ์ˆ˜์ •์ดํŽธํ• ๊นŒ? โ€ข ์‚ฌ์šฉ์ฒ˜:์ธ์Šคํ„ด์Šค๋ณ€์ˆ˜,์ธ์Šคํ„ด์Šค๋ฉ”์„œ๋“œ,์ธ์Šคํ„ด์Šค๋ฉ”์†Œ๋“œ์˜๋งค๊ฐœ๋ณ€์ˆ˜ โ€œ ์ด๋ฆ„์„ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ์ฒด๋กœ ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋ฒ„๋ ค์ง€๋Š” ๊ฐ์ฒดโ€ 16-1. ์ต๋ช…(Anonymous) Class ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  โ€ข ํด๋ž˜์Šค์ƒ์„ฑ โ€ข ์ธํ„ฐํŽ˜์ด์Šค์˜๊ตฌํ˜„ ๊ตฌํ˜„ ํ•˜๋Š” ๋ฐฉ๋ฒ• 01. ํด๋ž˜์Šค์ƒ์„ฑ โžข 1.์ถ”์ƒํด๋ž˜์Šค์ƒ์„ฑ ์˜ˆ์ œ : AnonymousAbstract.java ์˜ˆ์ œ : https://github.com/hyomee/JAVA_EDU/tree/main/L/src/com/hyomee/anonymous โžข 2. ์ถ”์ƒํด๋ž˜์Šค ๊ตฌํ˜„ Class ์ƒ์„ฑ ์˜ˆ์ œ : AnonymousAbstarctClass.java - ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ต๋ช…(Anonymous) Class โ€ข ํด๋ž˜์Šค๋ฅผ์ •์˜ํ•˜์ง€์•Š๊ณ ํ•„์š”ํ• ๋•Œ์ด๋ฆ„์—†์ด์ฆ‰์‹œ์„ ์–ธํ•˜๊ณ ์ธ์Šคํ„ด์Šคํ™”ํ•ด์„œ์‚ฌ์šฉ โ€ข ๊ฐ์ฒด์•ˆ์—๋งŒ๋“œ๋Š”๋กœ์ปฌํด๋ž˜์Šค์™€๋™์ผํ•˜๋‹ค โ€ข new์ˆ˜์‹์ด์˜ฌ์ˆ˜์žˆ๋Š”๊ณณ์–ด๋””๋“ ์ง€์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‚˜์ƒ์„ฑ์ž๋Š”์ •์˜ํ• ์ˆ˜์—†์Œ โ€ข ์ต๋ช…ํด๋ž˜์Šค๋‚ด๋ถ€์—์„œ์™ธ๋ถ€์˜๋ฉ”์†Œ๋“œ๋‚ด๋ณ€์ˆ˜๋ฅผ์ฐธ์กฐํ• ๋•Œ๋Š”๋ฉ”์†Œ๋“œ์˜์ง€์—ญ๋ณ€์ˆ˜์ค‘ final๋กœ์„ ์–ธ๋œ๋ณ€์ˆ˜๋งŒ์ฐธ์กฐ๊ฐ€๋Šฅ -๋ณ€์ˆ˜๋Š”Stack์—์žˆ๊ณ ๊ฐ์ฒด๋Š”Heap์—์žˆ์Œ,์ฆ‰Method์‹คํ–‰์ด๋๋‚˜๊ณ Stack๋Š”์‚ฌ๋ผ์ง€์ง€๋งŒ Heap์—์žˆ๋Š”Method๋Š”์‚ฌ๋ผ์ง€์ง€์•Š๊ธฐ๋•Œ๋ฌธ
  • 4. 1. ์ต๋ช…(Anonymous) Class 16. Lambda 16-1. ์ต๋ช…(Anonymous) Class ์˜ˆ์ œ : https://github.com/hyomee/JAVA_EDU/tree/main/L/src/com/hyomee/anonymous โžข 2.์ถ”์ƒํด๋ž˜์Šค ๊ตฌํ˜„ Class ์ƒ์„ฑ ์˜ˆ์ œ : AnonymousAbstarctClass.java - ์ธ์Šคํ„ด์Šค Method ์˜ˆ์ œ : AnonymousAbstarctClass.java - ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฉ”ํ„ฐ โžข 3. ์‹คํ–‰ โžข 2. ์ถ”์ƒํด๋ž˜์Šค ๊ตฌํ˜„ Class ์ƒ์„ฑ ์˜ˆ์ œ : AnonymousMain.java ํŒŒ๋ผ๋ฉ”ํ„ฐ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ ํ•˜์—ฌ ํŒŒ๋ผ๋ฉ”ํ„ฐ๋กœ ์ „๋‹ฌ ์˜ˆ์ œ : AnonymousChild .java ์ฐธ์กฐ
  • 5. 1. ์ต๋ช…(Anonymous) Class 16. Lambda 16-1. ์ต๋ช…(Anonymous) Class 02. ์ธํ„ฐํŽ˜์ด์Šค์˜๊ตฌํ˜„ โžข 1. ์ธํ„ฐํŽ˜์ด์Šค๊ตฌํ˜„ ์˜ˆ์ œ : https://github.com/hyomee/JAVA_EDU/tree/main/L/src/com/hyomee/anonymous ์˜ˆ์ œ : AnonymousInterface.java โžข 2. ์ธํ„ฐํŽ˜์ด์Šค๊ตฌํ˜„์ฒด ์˜ˆ์ œ : AnonymousInterfaceClass.java โžข 3. ์‹คํ–‰ ์ต๋ช… ๊ฐ์ฒด ์ƒ์„ฑ ๋žŒ๋‹ค ์ƒ์„ฑ
  • 6. 1. Lambda 16. Lambda โ€ข ์ž๋ฐ”8์ด์ „์—๋Š”Method๋ผ๋Š”ํ•จ์ˆ˜ํ˜•ํƒœ๊ฐ€์กด์žฌํ•˜์ง€๋งŒ๊ฐ์ฒด๋ฅผํ†ตํ•ด์„œ๋งŒ์ ‘๊ทผ์ด๊ฐ€๋Šฅํ•˜๊ณ ,Method๊ทธ์ž์ฒด๋ฅผ๋ณ€์ˆ˜๋กœ์‚ฌ์šฉํ•˜์ง€๋Š”๋ชปํ•œ๋‹ค. โ€ข ์ž๋ฐ”8์—์„œ๋Š”ํ•จ์ˆ˜๋ฅผ๋ณ€์ˆ˜์ฒ˜๋Ÿผ์‚ฌ์šฉํ• ์ˆ˜์žˆ๊ธฐ๋•Œ๋ฌธ์—,ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ๋‹ค๋ฅธ๋ฉ”์†Œ๋“œ์˜์ธ์ž๋กœ์ „๋‹ฌํ• ์ˆ˜์žˆ๊ณ ,๋ฆฌํ„ด๊ฐ’์œผ๋กœํ•จ์ˆ˜๋ฅผ๋ฐ›์„์ˆ˜๋„์žˆ๋‹ค. โ€ข ์ด๋ฆ„์—†๋Š”์ต๋ช…ํ•จ์ˆ˜๊ตฌํ˜„์—์„œ์ฃผ๋กœ์‚ฌ์šฉํ•˜๋ฉฐํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค์˜์ธ์Šคํ„ด์Šค(๊ตฌํ˜„๊ฐ์ฒด)๋ฅผํ‘œํ˜„ :ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค(์ถ”์ƒ๋ฉ”์†Œ๋“œ๊ฐ€ํ•˜๋‚˜์ธ์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ๊ตฌํ˜„๊ฐ์ฒด๋ฅผ๋žŒ๋‹ค์‹์œผ๋กœํ‘œํ˜„ โ€œ ์ž๋ฐ”์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋žจ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ ํ•ด ์ฃผ๋Š” ๋ฌธ๋ฒ•โ€ 16-2. Lambda ๋žŒ๋‹ค ( Lambda ) JAVA์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋žจ โžข ํ•จ์ˆ˜ โ€ข ํ•จ์ˆ˜์ •์˜ ->๊ตฌํ˜„ ->์‚ฌ์šฉ void fun() { โ€ฆ } fun() โžข JAVA โ€ข ํ•จ์ˆ˜๋Š”์—†์Œ โ€ข Class, Interface ์˜Method class C { void method() { โ€ฆ.. } } C c = new C(); c.method(); โžข JAVA Lambda ์ต๋ช… ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ ์šฉ โ€ข ํ•˜๋‚˜์˜์ถ”์ƒ๋ฉ”์„œ๋“œ๋งŒ์žˆ๋Š”interface ์ƒ์„ฑ-.>์ต๋ช… Class (๋ฉค๋ฒ„๋ณ€์ˆ˜)์ž‘์„ฑ->Lambda๋กœ๋ณ€๊ฒฝ Interface Example { R apply(A arg); } 01. ์ธํ„ฐํŽ˜์ด์Šค Example exp = new Example() { @Override public R apply(A arg) { body } }; 02. ์ธ์Šคํ„ด์Šค์ƒ์„ฑ Example exp = (arg) { body }; 03. ์ธ์ž๋ชฉ๋ก๊ณผํ•จ์ˆ˜๋ชธํ†ต ์„์ œ์™ธํ•˜๊ณ ๋ชจ๋‘์ œ๊ฑฐ Example exp = (arg) - >{ body } ; 04. ๋ฌธ๋ฒ•์ ์šฉ
  • 7. 1. Lambda 16. Lambda โ€œ ์ž๋ฐ”์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋žจ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ ํ•ด ์ฃผ๋Š” ๋ฌธ๋ฒ•โ€ 16-2. Lambda ํ‘œํ˜„์‹ โ€ข (arg1, arg2...) -> { body } โ€ข (params) -> expression โ€ข (params) -> statement โ€ข (params) -> { statements } โ€ข (int a, int b) -> { return a + b; }; > ํƒ€์ž… ์ถ”๋ก ์— ์˜ํ•œ ํƒ€์ž… ์ œ๊ฑฐ : (a, b) -> { return a+b } ; > ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ๋ฐ˜ํ™˜ ํ•˜๊ฑฐ๋‚˜ ํ•œ ์ค„ ํ‘œํ˜„์‹์ด ๊ฐ€๋Šฅ ํ•˜๋ฉด return ์‚ญ ์ œ : (a, b) -> a+b; โ€ข () -> System.out.println("Hello "); > ํŒŒ๋ผ๋ฏธํ„ฐ์—†๊ณ  Hello ์ถœ๋ ฅ System.out::println; โ€ข () -> System.out.println("Hello "); // ํŒŒ๋ผ๋ฏธํ„ฐ ์—†๊ณ  Hello ์ถœ๋ ฅ โ€ข (String s) -> { System.out.println(s); } // String s์ž…๋ ฅ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ์ถœ๋ ฅ โ€ข () -> 8514790 //ํŒŒ๋ผ๋ฏธํ„ฐ์—†๊ณ  8514790๊ฐ€ ๋ฆฌํ„ด โ€ข () -> { return 3.14 }; //ํŒŒ๋ผ๋ฏธํ„ฐ์—†๊ณ  3.14๋ฆฌํ„ด
  • 8. 1. Lambda 16. Lambda 16-2. Lambda ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•œ ๋žŒ๋‹ค class C { void method() { โ€ฆ.. } } C c = new C(); c.method(); interface ์ต๋ช… ์ด๋„ˆ ํด๋ž˜์Šค ํ•จ์ˆ˜ ์‹คํ—น ๋ฆฌํ„ด : ์—†์Œ ๋งค๊ฐœ : ์žˆ์Œ interface IfNoRnNoArg { void method(); } IfNoRnNoArg iNrNa = new IfNoRnNoArg() { void method () { โ€ฆ } }; IfNoRnNoArg iNrNa = ( ) - > { โ€ฆ }; iNrNa.method(); ๋ฆฌํ„ด : ์—†์Œ ๋งค๊ฐœ : ์žˆ์Œ interface IfNoRnArg { void method(int a); } IfNoRnArg iNra = new IfNoRnArg() { void method( int a ) { โ€ฆ } }; IfNoRnArg iNra = (int a) -> { โ€ฆ } iNra.method(1); ๋ฆฌํ„ด : ์—†์Œ ๋งค๊ฐœ : ์žˆ์Œ interface IfRnNoArg { int method(); } IfRnNoArg irNa = new IfRnNoArg () { int method() { int a = 0 โ€ฆ return a } }; IfRnNoArg irNa = () -> { int a = 10; return a; }; irNa.method(); ๋ฆฌํ„ด : ์—†์Œ ๋งค๊ฐœ : ์žˆ์Œ interface IfRnArg { int method(int a, int b); } IfRnArg ira = new IfRnNoArg () { int method(int a, int b) { return a + b; } }; IfRnArg ira = (a, b) -> { return a + b; }; ira.method(5, 10) ๋ฐฐ์—ด interface IfArray { int [] method(int length) } IfRnArg ira = new IfArray () { int method(int length) { return new int[length]; } }; IfRnArg ira = (length) -> { return new int[length]; }; or IfRnArg ira = int[] :: new; int [] a1 = ira. ira.method(10); ์˜ˆ์ œ : LambdaFunctional.java
  • 9. 1. Lambda 16. Lambda 16-2. Lambda ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•œ ๋žŒ๋‹ค ์˜ˆ์ œ : LambdaFunctional.java
  • 10. 1. Lambda 16. Lambda 16-2. Lambda ์กด์žฌ ํ•˜๋Š” ๊ฐ์ฒด ๋žŒ๋‹ค ํ‘œํ˜„ ์˜ˆ์ œ : ExistsClassLamda.java 01. ๊ฐ์ฒด์ƒ์„ฑ ๋žŒ๋‹ค๋กœ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ๋ฒ• ๋žŒ๋‹ค ์„ ์–ธ ๋ฐฉ๋ฒ• : ํด๋ž˜์Šค๊ฐ์ฒด :: ์ธ์Šคํ„ด์Šค๋ฉ”์„œ๋“œ๋ช…
  • 11. 1. Lambda 16. Lambda 16-2. Lambda ์กด์žฌ ํ•˜๋Š” ๊ฐ์ฒด ๋žŒ๋‹ค ํ‘œํ˜„ ์˜ˆ์ œ : ExistsClassLamda.java 02. ๊ธฐ์กด ๊ฐ์ฒด์˜๋ฉ”์„œ๋“œ์‹คํ–‰ ํด๋ž˜์Šค์˜ ๊ธฐ์กด ํ•จ์ˆ˜ ์ง€์ • ๋žŒ๋‹ค ์„ ์–ธ ๋ฐฉ๋ฒ• : ํด๋ž˜์Šค๊ฐ์ฒด :: ์ธ์Šคํ„ด์Šค๋ฉ”์„œ๋“œ๋ช… ํด๋ž˜์Šค์˜ ๊ธฐ์กด ํ•จ์ˆ˜ ์„ ํƒ ํด๋ž˜์Šค์˜ ๊ธฐ์กด ํ•จ์ˆ˜ ์„ ํƒ ๋žŒ๋‹ค๋กœ Class ์ƒ์„ฑ
  • 12. 1. Lambda 16. Lambda 16-2. Lambda ์กด์žฌ ํ•˜๋Š” ๊ฐ์ฒด ๋žŒ๋‹ค ํ‘œํ˜„ ์˜ˆ์ œ : ExistsClassLamda.java 03. Static ๋ฉ”์„œ๋“œ์‹คํ–‰ ๋žŒ๋‹ค ์„ ์–ธ ๋ฐฉ๋ฒ• : ํด๋ž˜์Šค๊ฐ์ฒด :: ์ •์ ๋ฉ”์„œ๋“œ๋ช… 04. ์ฒซ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ ํ•จ ๊ฐ์ฒด๋ฅผ ๋ฉ”์†Œ๋“œ ๋‚ด๋ถ€๋กœ ๋ณด๋ƒˆ์œผ๋ฏ€๋กœ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ์ƒ์„ฑ ํ•  ํ•„์š” ์—†์Œ
  • 13. 1. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค 16. Lambda 16-3. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค โ€ข ์ถ”์ƒMethod๊ฐ€ํ•˜๋‚˜๋ฟ์ธ์ธํ„ฐํŽ˜์ด์Šค(Single Abstract Method:SAM) โ€ข ์—ฌ๋Ÿฌ๊ฐœ์˜Default Method๊ฐ€์žˆ์„์ˆ˜์žˆ๋‹ค. โ€ข @FunctionalInterface ์–ด๋…ธํ…Œ์ด์…˜์€ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค โ€ข Runnable, ActionListener, Comparable์€ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค :์ž๋ฐ”8์ด์ „:์ต๋ช…ํด๋ž˜์Šค์ด์šฉ :์ž๋ฐ”8์ดํ›„:๋žŒ๋‹ค์‹์ด์šฉ java.util.function ์—์„œ ์ œ๊ณต ํ•˜๋Š” ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค โ€ข Predicate: ํ•˜๋‚˜์˜๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ์ฃผ๋Š”booleanํ˜•์„ ๋ฐ˜ํ™˜ โ€ข Consumer:ํ•˜๋‚˜์˜๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ์ฃผ๋Š”voidํ˜•accept ๋ฉ”์†Œ๋“œ โ€ข Function: T์œ ํ˜•์˜์ธ์ˆ˜๋ฅผ์ทจํ•˜๊ณ R์œ ํ˜•์˜๊ฒฐ๊ณผ๋ฅผ๋ฐ˜ํ™˜ํ•˜๋Š”์ถ”์ƒ๋ฉ”์†Œ๋“œapply โ€ข Supplier: ๋ฉ”์†Œ๋“œ์ธ์ž๋Š”์—†๊ณ T์œ ํ˜•์˜๊ฒฐ๊ณผ๋ฅผ๋ฐ˜ํ™˜ํ•˜๋Š”์ถ”์ƒ๋ฉ”์†Œ๋“œget โ€ข UnaryOperator:ํ•˜๋‚˜์˜์ธ์ž์™€๋ฆฌํ„ดํƒ€์ž…์„๊ฐ€์ง„๋‹ค. T->T โ€ข BinaryOperator:๋‘๊ฐœ์˜์ธ์ˆ˜,๋™์ผํ•œํƒ€์ž…์˜๊ฒฐ๊ณผ๋ฅผ๋ฐ˜ํ™˜ํ•˜๋Š”์ถ”์ƒ๋ฉ”์„œ๋“œapply 01. ๊ฐ€์žฅ๊ธฐ๋ณธ์ด๋˜๋Š”ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค 02. ํŒŒ๋ผ๋ฉ”ํ„ฐ๊ฐ€๋‘๊ฐœ์ธํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค 03. ํŒŒ๋ผ๋ฉ”ํ„ฐ๋ฅผ๋ฐ›๊ณ ๋™์ผํ•œํƒ€์ž…์„๋ฆฌํ„ดํ•˜๋Š”ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค 04. ๊ธฐ๋ณธํ˜•ํƒ€์ž…์˜ํ•จ์ˆ˜ํ˜•์ธํผํŽ˜์ด์Šค
  • 14. 1. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค 16. Lambda 16-3. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค (3 +3) * 2 10 > 5 and 10 < 6 10 > 5 or 10 < 6
  • 15. 1. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค 16. Lambda 16-3. ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค 05. Stream๊ณผ๊ฐ™์ด์‚ฌ์šฉํ•˜๋Š”ํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค
  • 16. 1. ํƒ€์ž… ์ถ”๋ก  16. Lambda 16-3. ํƒ€์ž… ์ถ”๋ก  ํƒ€์ž… ์ถ”๋ก  โ€ข ์ž๋ฐ”์ปดํŒŒ์ผ๋Ÿฌ๋Š”๋žŒ๋‹คํ‘œํ˜„์‹์ด์‚ฌ์šฉ๋œ์ปจํ…์ŠคํŠธ(๋Œ€์ƒํ˜•์‹)๋ฅผ์ด์šฉํ•ด์„œ๋žŒ๋‹คํ‘œํ˜„์‹๊ณผ๊ด€๋ จ๋œํ•จ์ˆ˜ํ˜•์ธํ„ฐํŽ˜์ด์Šค๋ฅผ์ถ”๋ก ํ•œ๋‹ค. โ€ข ์ฆ‰,๋Œ€์ƒํ˜•์‹์„์ด์šฉํ•ด์„œํ•จ์ˆ˜๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ์•Œ์ˆ˜์žˆ์œผ๋ฏ€๋กœ์ปดํŒŒ์ผ๋Ÿฌ๋Š”๋žŒ๋‹ค์˜์‹œ๊ทธ๋‹ˆ์ฒ˜๋„์ถ”๋ก ํ• ์ˆ˜์žˆ๋‹ค. โ€ข ๊ฒฐ๊ณผ์ ์œผ๋กœ์ปดํŒŒ์ผ๋Ÿฌ๋Š”๋žŒ๋‹คํ‘œํ˜„์‹์˜ํŒŒ๋ผ๋ฏธํ„ฐํ˜•์‹์—์ ‘๊ทผํ• ์ˆ˜์žˆ์œผ๋ฏ€๋กœ๋žŒ๋‹ค๋ฌธ๋ฒ•์—์„œ์ด๋ฅผ์ƒ๋žตํ• ์ˆ˜์žˆ๋‹ค. โ€ข ์ฆ‰,์ž๋ฐ”์ปดํŒŒ์ผ๋Ÿฌ๋Š”๋‹ค์Œ์ฒ˜๋Ÿผ๋žŒ๋‹คํŒŒ๋ผ๋ฏธํ„ฐํ˜•์‹์„์ถ”๋ก ํ• ์ˆ˜์žˆ๋‹ค. โ€ข ์—ฌ๋ŸฌํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผํฌํ•จํ•˜๋Š”๋žŒ๋‹คํ‘œํ˜„์‹์—์„œ๋Š”์ฝ”๋“œ๊ฐ€๋…์„ฑํ–ฅ์ƒ์ด๋”๋‘๋“œ๋Ÿฌ์ง„๋‹ค. interface IfRnArg { int method(int a, int b); } IfRnArg ira = new IfRnNoArg () { int method(int a, int b) { return a + b; } }; IfRnArg ira = (int a, int b) -> { return a + b; }; IfRnArg ira = (a, b) -> { return a + b; };