일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 무한
- 루프
- unboxing
- 빌드
- 메소드
- wrapper
- 자동형변환
- 제네릭
- 제너릭
- 콜렉션
- maven
- start.spring.io
- 내장객체
- 언박싱
- 인텔리제이
- Scanner
- dependency
- https://start.spring.io
- 싱글턴
- Jenkins
- Java
- Short
- 스프링
- boxing
- 박싱
- 컬렉션
- bootstrap
- suvlet
- 싱글톤
- 클래스
Archives
- Today
- Total
Developer Gonie
1. 스트림에서 사용되는 '람다식'(Java 8부터 추가됨) 본문
람다식(Java 8부터 추가됨)
* 람다식이란?
람다식은 매개변수를 가진 코드블록으로 런타임 시에 이를 실행할 수 있도록 익명 구현 객체를 생성한다.
익명 함수를 생성하기 위한 식으로 '객체 지향 언어' 보다 '함수 지향 언어'에 가깝다.
Lisp, Scheme와 같은 함수적 프로그래밍 언어들은 과거에 학계 외에 현업에서 큰 호응을 얻지 못하였는데, 최근에 들어와서 병렬처리와 이벤트 지향 프로그래밍에 적합해 다시 부각되고 있다. 함수적 프로그래밍과 객체 지향 프로그래밍은 다른데 이 둘을 혼합하여 사용하도록 프로그래밍 언어가 바뀌고 있는 것이다.
* Java에서 람다식을 수용한 이유
자바 코드가 매우 간결해지고, 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있기 때문이다.
(여기서 말하는 컬렉션이란 컬렉션 프레임워크인 List, Set, Map 인터페이스를 말하며 Arrays도 포함되는 듯 함)
* 람다식 기본문법
(타입1 매개변수1, 타입2 매개변수2,,,,) -> {
실행문1;
실행문2;
}
// ex) "int 매개변수 a의 값을 콘솔에 출력하는 코드를 람다식으로 작성하시오"
(int a) -> {
System.out.println(a);
System.out.println(a*2);
}
알아야할 람다식 기본문법 변형
// 1. 일반적으로 매개변수 타입지정은 생략한다.(런타임 시에 대입되는 값에 따라 자동으로 인식될 수 있기 때문에)
(a) -> { System.out.println(a); }
// 2. 매개변수가 1개라면 괄호 () 를 생략할 수 있고, 하나의 실행문만 있다면 중괄호 { } 를 생략할 수 있다.
a -> System.out.println(a)
// 3. 매개변수가 없는 람다식을 작성할 경우 매개변수 자리에 ()를 반드시 남겨줘야 한다.
() -> { System.out.println("가나다라마바사"); }
// 4. 실행문에서 결과값을 반환하고 싶다면 return 문으로 결과값을 지정할 수 있다.
(x, y) -> { return x + y;};
// 5. 중괄호 {} 에 return 문만 있을 경우 일반적으로 return 문을 생략한다.
(x, y) -> x + y
'인프런 김영한님 강의 > 0. 수강중 Java 추가 공부' 카테고리의 다른 글
2. 스트림 (Java 8부터 추가됨)*** => 알고리즘 문제에 활용가능 (0) | 2022.06.25 |
---|
Comments