import java.util.ArrayList;
import java.util.List;
public class Sample {
public static void main(String[] args) {
ArrayList<String> s = new ArrayList<>(List.of("A", "B", "C"));
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
s.forEach(str -> sb.append(str));
s.forEach(sb2::append);
System.out.println(sb);
System.out.println(sb2);
}
}
자바에서 함수형 인터페이스를 구현할 경우, 람다 표현식(Lambda Expression)과 메소드 참조(Method Reference)를 사용할 수 있는데
람다 표현식은 익명 함수를 간결하게 표현하는 방법으로, 매개변수, 화살표, 몸체로 구성되는데 위 코드에서 s.forEach(str -> sb.append(str)); 이 부분이 람다 표현식이 되겠다.
사용방법을 보면 먼저 List안에 들어있는 값을 str로 정의해준 뒤 화살표를 사용하고 StringBuilder에 str을 append 해 주는 넣어 람다 표현식을 구현할 수 있다.
람다 표현식은 익명 함수를 간결하게 포함할 수 있고, 복잡한 로직을 구현할 때 유용하게 사용할 수 있다.
다음은 메소드 참조인데 클래스,객체::메소드 이런 식으로 사용하며, 위 예제를 보면 sb2::append 부분인데
:: 연산자를 사용하여 클래스나 객체의 메소드를 사용할 수 있고, 람다 표현식보다 더 짧고 간결하게 표현이 가능하다.
람다 표현식과의 차이점은 단순하거나 이미 구현된 메소드를 재사용하는 경우에는 메소드 참조를 사용하고, 그 외에는 람다 표현식을 사용해주면 된다
Leave a Reply