람다식이란 (Lambda expression)
람다식은 간단히 말해서 메서드를 하나의 식으로 표현한것이다. 메서드의 이름값과 반환값이 없어지므로 익명함수라고도 불린다.
람다식의 기본구조
1 | (타입 매개변수, ....) -> {실행문} | cs |
매개변수는 {} 블록을 실행하기 위해 필요한 값을 제공하는 역할을 한다.
매개 변수의 이름은 개발자가 자유롭게 지정할 수 있으며 인자타입도 명시하지 않아도 된다.
-> 기호는 매개 변수를 이용해서 중괄호 {} 바디를 실행한다는 뜻으로 해석하면 된다.
람다식의 장단점
- 코드를 간결하게 만들 수 있다.
- 코드가 간결하고 식에 개발자의 의도가 명확히 드러나므로 가독성이 향상된다.
- 함수를 만드는 과정없이 한번에 처리할 수 있기에 코딩하는 시간이 줄어든다.
- 병렬프로그래밍에 용이하다.
람다식의 단점
- 람다를 사용하면서 만드는 무명함수는 재사용이 불가능하다.
- 디버깅이 다소 까다롭다.
- 람다를 남발하면 코드가 지저분해질 수 있다.
- 재귀를 만들경우에는 다소 적합하지 않은 부분이 있다.
람다식의 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | final List<String> names = Arrays.asList("Sehoon", "Songwoo", "Chan", "Youngsuk", "Dajung"); int cnt = 0; for(String name : names) { if(name.startsWith("S")) { cnt += 1; } } System.out.println("Count is "+ cnt); | cs |
1 2 3 4 5 6 7 8 9 10 | final List<String> names = Arrays.asList("Sehoon", "Songwoo", "Chan", "Youngsuk", "Dajung"); System.out.println("Count is " + names.stream().filter(name -> name.startsWith("S")).count()); |
참고
https://multifrontgarden.tistory.com/124?category=471239
for-loop를 Stream.forEach()로 바꾸지 말아야 할 3가지 이유
'개발이야기' 카테고리의 다른 글
Spring HandlerMethodArgumentResolver 사용하기 (0) | 2019.04.12 |
---|---|
Spring Jpa LocalDateTime MySql에서 사용하기 (0) | 2019.04.12 |
Java Enum 이란? (0) | 2019.04.10 |
Mac Mysql 설치 및 설정하기 (0) | 2019.03.20 |
git ignore 설정하기 (0) | 2019.03.19 |