1. 람다식(Lambda expression)이란?

  •  **"식별자 없이 실행 가능한 함수"**라고 말할 수 있습니다. 즉, 함수의 이름을 따로 정의하지 않아도 곧바로 함수처럼 사용할 수 있는 것입니다. 문법이 간결하여 보다 편리한 방식입니다. (익명 함수라고도 부릅니다.)
  • 람다식이 코드를 보다 간결하게 만들어주는 역할을 하지만 그렇다고 무조건 좋다고만 이야기할 수는 없습니다.
  •  
  • Why?
    • 람다만을 사용할 경우 비슷한 메소드를 중복되게 생성할 가능성이 있으므로 지저분해질 수 있습니다.
    • 람다를 사용하여서 만든 익명 함수는 재사용이 불가능합니다.

** 기업에서 사용하는 자바의 버전이 람다를 지원하지 않는 경우 람다를 사용하지 않음.

** 람다를 썻을때 본인 코드를 이해하는 데는 편해짐. but 남이 짠 코드를 해석하는데 큰 어려움이 있음

** 람다를 사용하게 될 경우 해당 내용에 대해 주석을 아주 상세하게 달아놓아야 함.

** 람다를 쓰는 회사는 자체적으로 코드리뷰를 진행하여 람다식에 대한 이해를 전제로 코드를 작성함

 

  • 람다식 예제
public class Main {
    public static void main(String[] args) {
        ArrayList<String> strList = new ArrayList<>(Arrays.asList("korea", "japan", "china", "france", "england"));
        Stream<String> stream = strList.stream();
        stream.map(str -> str.toUpperCase()).forEach(System.out::println);
        
 //출력: korea /n KOREA /n japan /n JAPAN /n china /n CHINA /n france /n FRANCE /n england /n ENGLAND 
    }
}

 

 

  • 이중콜론 연산자 예제
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> cities = Arrays.asList("서울", "부산", "속초", "수원", "대구");
        cities.forEach(System.out::println);
    }
}
// 출력 : 서울 /n 부산 /n 속초 /n 수원 /n 대구

- 이중 콜론 연산자는 매개변수를 중복해서 사용하고 싶지 않을 때 사용하곤 합니다. 출력결과를 보시면 cities의 요소들이 하나씩 출력 될 것입니다. 즉, cities.forEach(x -> System.out.println(x)); 와 똑같은 의미인 것이죠!

 

 

3. 퀴즈

문제 : '이'씨 성을 가진 사람들의 수를 세볼려고 합니다.

이름 : ["김정우", "김호정", "이하늘", "이정희", "박정우", "박지현", "정우석", "이지수"]

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("김정우", "김호정", "이하늘", "이정희", "박정우", "박지현", "정우석", "이지수");
        long count = names.stream()
                          .filter(str -> str.startsWith("이"))
                          .count();

        System.out.println("count : " + count);
    }
}

+ Recent posts