-
λλ€ LambdaJava 2022. 4. 11. 13:27
π‘ λλ€ Lambda
: μ½λμ μμ΄ μ€μ΄λ€κ³ μ½κΈ° μ½λ€
== μ΅λͺ ν¨μ Anonymous functions
πμΈν°νμ΄μ€μ λ©μλκ° 1κ° μ΄μμ΄λ©΄ λλ€ν¨μ μ¬μ©ν μ μλ€
-> @FunctionalInterface λ λλ²μ§Έ λ©μλλ₯Ό νμ©νμ§ μλλ€ : μ΄λ Έν μ΄μ μ¬μ©
μ¬μ© μ
interface Calculator { int sum(int a, int b); } class MyCalculator implements Calculator { public int sum(int a, int b) { return a+b; } } public class Sample { public static void main(String[] args) { MyCalculator mc = new MyCalculator(); int result = mc.sum(3, 4); System.out.println(result); // 7 μΆλ ₯ } }
μ¬μ© ν
@FunctionalInterface interface Calculator { int sum(int a, int b); } public class Sample { public static void main(String[] args) { Calculator mc = (int a, int b) -> a +b; int result = mc.sum(3, 4); System.out.println(result); } }
* int a, int bλ sum ν¨μμ μ λ ₯νλͺ© -> a+bκ° λ¦¬ν΄κ°μ ν΄λΉνλ€
* MyCalculatorμ κ°μ μ€μ ν΄λμ€ μμ΄λ Calculator κ°μ²΄λ₯Ό μμ±ν μ μλ€
π‘ λλ€ μΆμ½
: μΈν°νμ΄μ€μ μ΄λ―Έ μ μΆλ ₯μ λν νμ μ΄ μ μλμ΄ μμΌλ―λ‘ μ λ ₯κ°μ νμ μΈ intλ μλ΅κ°λ₯
-> (a, b) -> a+b == Integer.sum(int a, int b) => Integer::sum
π‘ λλ€ ν¨μ μΈν°νμ΄μ€
π BiFunction μΈν°νμ΄μ€ μ¬μ©
import java.util.function.BiFunction; public class Sample { public static void main(String[] args) { BiFunction<Integer, Integer, Integer> mc = (a, b) -> a + b; int result = mc.apply(3, 4); // sumμ΄ μλ apply λ©μλλ₯Ό μ¬μ©ν΄μΌ νλ€. System.out.println(result); // 7 μΆλ ₯ } }
* BiFunction<Integer, Integer, Integer> μμλλ‘ μ λ ₯νλͺ© 2κ°, μΆλ ₯νλͺ© 1κ° μλ―Έ
π BinaryOperator
: μ μΆλ ₯ νλͺ©μ΄ λͺ¨λ λμΌν κ²½μ°
import java.util.function.BinaryOperator; public class Sample { public static void main(String[] args) { BinaryOperator<Integer> mc = (a, b) -> a + b; int result = mc.apply(3, 4); System.out.println(result); // 7 μΆλ ₯ } }
'Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ½μ μ μΆλ ₯ Scanner (0) 2022.04.11 κΈ°λ³Έ ν΄λμ€(Object, String, Class) (0) 2022.03.06 μΈν°νμ΄μ€interface (0) 2022.03.05 맡(Map), μ§ν©(Set), μμμ§ν©(Enum) (0) 2022.03.05 ν νλ¦Ώ λ©μλ (0) 2022.03.04