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);
}
}
'프로그래밍 > Java' 카테고리의 다른 글
indexOf / lastIndexOf : 특정 문자 위치 찾기 (0) | 2022.05.21 |
---|---|
스트림(stream)이란? (0) | 2022.05.18 |
제네릭스(Generics) 란? (0) | 2022.05.18 |
Collection(2) - 스택(Stack)/ 큐(Queue)/ ArrayDeque (0) | 2022.05.18 |
Collection(1) (List, Set, Map) (0) | 2022.05.18 |