
Lambda(λλ€)κ° λμμ
λλ€λ μ μνμλ©΄ ν¨μν νλ‘κ·Έλλ°μ ννλ‘ μ¬μ¬μ© κ°λ₯ν μ½λ λΈλ‘μ΄λ€.
μ΄μ μ μ μνλ μ΅λͺ ν¨μλ₯Ό μ§μΉνλ μ©μ΄μ΄κΈ°λ νλ©΄μ λμΆ© ν΄λμ€λ₯Ό μ μΈν΄μ λ©μλλ₯Ό λ§λ€κ³ ... μ΄κ² λ무 λΉν¨μ¨μ μ΄λΌκ³ μ¬κ²¨μ λμ€κ² λ κ±° + μ½λλ₯Ό κ°κ²°νκ² νκΈ° μν¨μ μ΄μ λ‘ λμ¨ ν¨μμ΄λ€.
λλ€ μ μ°λ
μ½λκ° κ°κ²°ν΄μ§λ€.
public class LambdaTest {
public static void main(String[] args) {
MyInterface m1 = new MyInterface() { //1.μ΅λͺ
μ μ΄μ©ν MyInterface ꡬνλΆ
@Override
public int max(int a, int b){
return a > b ? a : b;
}
};
System.out.println(m1.max(5,10));
MyInterface m2 = (a,b) -> { return a > b ? a : b;}; // 2.λλ€λ₯Ό μ΄μ©ν ꡬνλΆ
System.out.println(m2.max(5,10));
}
}
@FunctionalInterface // ν¨μν μΈν°νμ΄μ€
interface MyInterface{
public int max(int a, int b);
}
λλ€μ 쑰건
- μΈν°νμ΄μ€ + μΆμ λ©μλκ° νλλ§ μμ λ μ¬μ© κ°λ₯νλ€.(= ν¨μν μΈν°νμ΄μ€μλ§ μ¬μ© κ°λ₯)
ν¨μν μΈν°νμ΄μ€μΈμ§ νμΈνλ λ°©λ²: @FunctionalInterface μ΄λ Έν μ΄μ μ μ΄μ©
- λλ€μμ λ©μλλͺ , λ³μ μ 보λ₯Ό κ°λ΅νν΄μ νμνλ€.
- λΉμ°ν λ©μλκ° λ§λ€λ©΄ μ΄λ€ λ©μλλ₯Ό νΈμΆν μ§ λͺ¨λ₯΄λκΉ λλ€μμ΄ μλλ€.
λλ€μ νΉμ§
- κ²°κ΅ λ©μλμ΄κΈ° λλ¬Έμ μΈλΆμ λ©€λ² λ³μ μ κ·Όμ λ³λ€λ₯Έ μ μ½μ΄ μλ€. (κ·Έ μμͺ½μ ꡬνλμκΈ° λλ¬Έμ΄λ€.)
- κ°μ μ΄μ λ‘ μΈλΆ λ‘컬 λ³μμ κ°μ λ°κΏ μ μλ€.(μ°Έμ‘°νμ΄ λ§€κ°λ³μλ©΄ μ£Όμκ°μ΄κΈ°μ κ°λ₯)
- μ νν λ§νμλ©΄ heapμ μλ λ³μλ μ‘°ν, λ³κ²½μ΄ λ λ€ κ°λ₯νλ€.
- stackμ μλ λ³μλ read onlyμ΄λ€.
- μμλ μΈλΆ λ©μλμλ μν₯μ λͺ» μ€λ€.
- λ§€κ°λ³μκ° ν κ°λ©΄ κ΄νΈλ₯Ό μλ΅ν΄λ λλ€.
- λλ€μ μ체λ₯Ό λ§€κ°λ³μλ λ°ν κ°μΌλ‘ μ¬μ©ν μ μλ€.
- λλ€ μ€νλ¬Έ λ΄λΆμμ λ€λ₯Έ ν¨μ νλλ§ μ°λ κ²½μ° + λ§€κ°λ³μλ₯Ό λ€ μ΄λ€λ©΄

μ΄λ° μμ μΆμ½λ κ°λ₯νλ€.
'Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [JAVA] Exception (0) | 2024.07.28 |
|---|---|
| [JAVA] Stream API (0) | 2024.07.25 |
| [JAVA] Comparable? Comparator? (3) | 2024.07.23 |
| [JAVA] Generic (3) | 2024.07.22 |
| [JAVA] μΆμ (1) | 2024.07.20 |