람다식이란 (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());
 
 
 

cs



참고 

https://multifrontgarden.tistory.com/124?category=471239

for-loop를 Stream.forEach()로 바꾸지 말아야 할 3가지 이유

https://effectivesquid.tistory.com/entry/java-8-%EB%9E%8C%EB%8B%A4%EC%8B%9D%EC%9D%B4%EB%9E%80?category=628539




'개발이야기' 카테고리의 다른 글

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
블로그 이미지

클라인STR

,