μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- di
- datepicker
- κ°μ²΄μ§ν₯νλ‘κ·Έλλ°
- μ΄λ Έν μ΄μ
- menutab
- http method
- reflection
- fontstyle
- OpenAPI
- FACTORY
- νλ IT&E
- URN
- μ½λμ
- AndroidStudio
- udp
- μ±μ©νμ ν
- 2024-08-20
- Dialog
- tcp
- swagger
- Android Studio
- OOP
- IOC
- url
- 2024-08-21
- uri
- Python
- κΈ°μ΄100μ
- Kotlin
- Factory Method Pattern
dingdong coding
[ JAVA ] Lambda λ³Έλ¬Έ
Spring Bootλ‘ κ°λ°νλ μ€ μμ£Όμ¬μ©νκ² λλ λλ€μ λν΄ ν λ² νμ΅νκ³ λμ΄κ°κ³ μ μ 리νκ² λμλ€.
Lambda?
Anonymous function μ¦, μ΄λ¦μ΄ μλ μ΅λͺ ν¨μλ₯Ό λ»ν©λλ€.
λ³΄ν΅ λ©μλκ° μλ ν¨μλ‘ μ’ μμ μ΄μ§ μλ€λ νΉμ§μ κ°μ§κ³ μμ΅λλ€.
1. λλ€μ μ΄μ
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
2. λλ€μ μ¬μ©
IntStream.range(0, 10).forEach((int value) -> System.out.println(value));
μ΄λ λ― ν¨μν νλ‘κ·Έλλ°μΈ μ΅λͺ ν¨μλ μΌκΈκ°μ²΄(first-class-citizen)λΌλ νΉμ§μ κ°μ§κ³ μμ΅λλ€.
first-class-citizen
- λ³μλ λ°μ΄ν° ꡬ쑰μμ ν¨μλ₯Ό λ΄μ μ μμ΄μ ν¨μμ νλΌλ―Έν°λ‘ μ λ¬ν μ μκ³ , ν¨μμ λ°νκ°μΌλ‘ μ¬μ©ν μ μλ€.
- ν λΉμ μ¬μ©λ μ΄λ¦κ³Ό κ΄κ³μμ΄ κ³ μ ν ꡬλ³μ΄ κ°λ₯νλ€.
- ν¨μλ₯Ό 리ν°λ΄λ‘ λ°λ‘ μ μν μ μλ€.
λλ€μ μ₯λ¨μ
μ₯μ
- μ½λμ κ°κ²°μ± - λλ€λ₯Ό μ¬μ©νλ©΄ λΆνμν λ°λ³΅λ¬Έμ μμ κ° κ°λ₯νλ©° 볡μ‘ν μμ λ¨μνκ² ννν μ μμ΅λλ€.
- μ§μ°μ°μ° μν - λλ€λ μ§μ°μ°μμ μν ν¨μΌλ‘μ¨ λΆνμν μ°μ°μ μ΅μν ν μ μμ΅λλ€.
- λ³λ ¬μ²λ¦¬ κ°λ₯ - λ©ν°μ°λ λλ₯Ό νμ©νμ¬ λ³λ ¬μ²λ¦¬λ₯Ό μ¬μ© ν μ μμ΅λλ€.
λ¨μ
- λλ€μμ νΈμΆμ΄ κΉλ€λ‘μ΅λλ€
- λλ€ stream μ¬μ© μ λ¨μ forλ¬Έ νΉμ whileλ¬Έ μ¬μ© μ μ±λ₯μ΄ λ¨μ΄μ§λλ€.
- λΆνμνκ² λ무 μ¬μ©νκ² λλ©΄ μ€νλ € κ°λ μ±μ λ¨μ΄ λ¨λ¦΄ μ μμ΅λλ€.
λλ€μ ννλ²
맀κ°λ³μ + μ€νλ¬Έ μΌλ‘ ꡬμ±λλ©° μ κ·Όμ, λ°ννμ μλ΅ν©λλ€.
λλ€μ κΈ°λ³Έ μ: ( 맀κ°λ³μ, ... ) -> { μ€νλ¬Έ }
( )μ interface ν¨μμ 맀κ°λ³μλ₯Ό μ λ ₯νκ³ { } μμ μ€νν μ½λλ₯Ό μμ±νλ ννλ μμ±νλ€.
1. Calculatorμ calc()λ₯Ό λλ€μ κΈ°λ³ΈμμΌλ‘ ꡬν
class Driver {
public static void main(String[] args) {
int n = 2;
// (맀κ°λ³μ) -> {ꡬνλ‘μ§}
Calculator cal = (int n) -> {return n + 1;};
System.out.println(cal.calc(n)); // 3
}
}
2. 맀κ°λ³μμ νμ μ μλμΌλ‘ μΈμνκΈ° λλ¬Έμ λ³μ νμ μ μμ ν μ μλ€.
class Driver {
public static void main(String[] args) {
int n = 2;
// (맀κ°λ³μ) -> {ꡬνλ‘μ§}
Calculator cal = (n) -> {return n + 1;};
System.out.println(cal.calc(n)); // 3
}
}
3. 맀κ°λ³μκ° νλ μΌ λ ()λ₯Ό μλ΅ν μ μλ€. λ κ°μ΄μ νΉμ μμ λλ ()κ° νμν¨
class Driver {
public static void main(String[] args) {
int n = 2;
// (맀κ°λ³μ) -> {ꡬνλ‘μ§}
Calculator cal = n -> {return n + 1;};
// 맀κ°λ³μκ° μλ κ²½μ° λ¬΄μ‘°κ±΄ ()κ° νμν¨. () -> {return "hi";}
System.out.println(cal.calc(n)); // 3
}
}
4. λ‘μ§μ΄ ν μ€μμ λλλ κ²½μ° {}κ³Ό returnμ μ κ±°ν μ μλ€.
class Driver {
public static void main(String[] args) {
int n = 2;
Calculator cal = n -> n + 1; // κ°λ¨νκ² λ³κ²½
System.out.println(cal.calc(n)); // 3
}
}
νμ΅μ λ§μ΄ λμμ΄ λ λΈλ‘κ·Έ λ§ν¬λ₯Ό μ°Έμ‘°νμ΅λλ€. π
'π°JAVA > Basic' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA ] List Interface (0) | 2022.06.20 |
---|---|
[JAVA ] Collection (0) | 2022.06.20 |
[ JAVA ] Optional (0) | 2022.06.15 |
[ JAVA ] HashMap (0) | 2022.06.14 |
[ JAVA, DB μμ£Ό ] κ°λ° κ΄λ ¨ μ©μ΄ μ 리 ( κ°μΈ νμ΅μ© ) (0) | 2022.06.14 |