2014년에 발표된 JAVA 최신버전인 JAVA SE 8 버전에서 많은 사향이 변경되거나 새롭게 추가되었습니다. JAVA SE 8에서 변경되거나 새롭게 추가된 사항들 중에 주목할 부분은 다음과 같스빈다.
람다식, 또는 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어이다.
출처 : https://namu.wiki/w/%EB%9E%8C%EB%8B%A4%EC%8B%9D
간단히 말하면 익명 함수를 사용하여 보다 단순하게 표현하는 방법이라고 보시면 됩니다.
해당 부분을 이해하기 위해선 우선 함수형 프로그래밍을 알아야한다.
함수형 프로그래밍(functional programming)은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 명령형 프로그래밍에서는 상태를 바꾸는 것을 강조하는 것과는 달리, 함수형 프로그래밍은 함수의 응용을 강조한다.
함수형 프로그래밍에 대해선 별도의 게시글을 통해 게시하도록 하겠습니다.
장점
단점
기본 형태
(자료형 매개변수) -> { 실행코드; }
a. 매개변수 : 메소드 매개변수
b. "->" : 에로우, 코드블럭을 실행(호출)
c. "{ }" : 메소드 구현부
참조 : https://sas-study.tistory.com/105
다음 List에 담겨저 있는 것을 sysout을 이용해서 호출을 하는 것을 예제로 하겠습니다.
import java.util.Arrays;
import java.util.List;
public class test {
// 람다식 x
public static void main(String[] args) {
List<String> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
for(Integer number : list){
System.out.println( number);
}
}
//람다식 o
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
list.forEach(n -> System.out.println(n));
}
}
둘은 동일하게 결과가 나오지만 소스는 더 간결해졌다.
StringJoiner joiner = new StringJoiner(",");
joiner.add("빨강")
.add("주황")
.add("노랑")
.add("초록");
System.out.println(joiner);