# Lambda expression

모던 C++ 람다(함수형)
C++ 는 oop 중심의 언어이지만, fuctional programming 의 핵심 feature 인 lmbda function 지원하기 시작했다.

람다식 (Lambda Expression)
함수의 이름이 존재하지 않는 익명 함수(Anonymous Function)를 지칭한다.프로그래밍 언어에서 사용되는 개념으로 Java에 국한되는 것이 아니다.Java의 경우 Java 8 부터 도입매개변수와 함수의 본문이 존재한다.실행문 자체에 람다식을 전달하여 구현한다.

스트림(Stream)이란?
“Stream”이라는 단어의 사전적 의미는 “흐르다”라는 의미를 가지고 있다. Java에서도 비슷한 의미인데 여기에서는 “데이터”의 흐름을 말한다.

JAVA - 람다와 스트림(9)
collect( )는 스트림의 요소를 수집하는 최종 연산이다.collect( )가 스트림의 요소를 수집하려면, 어떻게 수집할 것인지 방법이 정의되어 있어야 한다. \- collect( )가 스트림의 요소를 수집하는 방법을 정의한 것이 collector(컬렉터) 이다.

JAVA - 람다와 스트림(8)
중간연산과 달리 최종 연산은 스트림의 요소를 소모해서 결과를 만들어낸다.최종 연산후에는 스트림이 닫히게 되어, 더 이상 사용할 수 없다.최종 연산의 결과는 스트림 요소의 합과 같은 단일 값 또는 스트림의 요소가 담긴 배열이나 컬렉션일 수 있다.forEach( )는 스트

JAVA - 람다와 스트림(7)
Stream<T>타입의 스트림을 기본형 스트림으로 변환할때 아래의 메서드들을 사용한다.스트림에 포함된 모든 학생의 성적을 합산해야 하는 경우가 있다고 가정하면,두 가지 방법이 있을 수 있다.map( )으로 학생의 총점을 뽑아서 새로운 스트림을 반환받기mapToIn

JAVA - 람다와 스트림(6)
람다식 - iterate( ) & generate( ) iterate( ) & generate( ) 람다식을 매개변수로 받는다. 람다식에 의해 계산되는 값들을 요소로 하는 무한 스트림을 생성한다. iterate( ) 씨앗값(seed)으로 지정된 값부터 시작해서, 람다

JAVA - 람다와 스트림(5)
최종 연산이 수행되기 전까지는 중간연산이 수행되지 않음중간 연산을 호출하는 것은 단지 어떤 작업이 수행되어야하는지를 지정하는 것임최종 연산이 수행되어야 비로소 스트림의 요소들이 중간 연산을 거쳐 최종 연산에서 소모됨요소의 타입이 T인 스트림은 기본적으로 Stream&l

JAVA - 람다와 스트림(3)
람다식이 하나의 메서드만 호출하는 경우, '메서드 참조(method reference)'라는 방법으로람다식을 더욱 간략히 할 수 있다.메서드 참조에서는 람다식의 일부가 생략되었지만, 컴파일러가 생략된 부분을 우측의 parseInt( )메서드의 선언부 또는 Functio

JAVA - 람다와 스트림(2)
java.util.function 패키지에는 여러가지 함수형 인터페이스들이 정의되어 있다.그중에서 가장 기본적인 함수형 인터페이스는 다음과 같다.매개변수와 반환값의 유무에 따라 4개의 함수형 인터페이스가 정의되어 있다.Predicate는 Function의 변형으로, 반
Lambda Expression, Functional Interface
람다식(Lambda Expression) Stream 연산들은 매개변수로 함수형 인터페이스(Functional Interface)를 받도록 되어 있다. 그리고 람다식은 반환 값으로 함수형 인터페이스를 반환하고 있다. 그렇기 때문에 우리는 Stream API를 정확히 이

[Java] 람다식(Lambda Expression)
람다식에 대해 알아봐요~ 이걸 이해하면 자바 라이브러리 활용법을 더 이해할 수 있게 될거에요.