람다와 스트림의 개념


들어가기 앞서서, 람다식과, 람다하면 빼놓을 수 없는 스트림의 개념을 정리해보자.

람다식은 하나의 표현법으로 익명 함수를 간결하게 표현하는 방법이다.

→ 자바 8부터 도입된 함수형 프로그래밍을 지원하기 위한 기능이다.

표현법은 다음과 같다.

(매개변수1, 매개변수2, ...) -> { 구현 }

스트림이란 마찬가지로 자바 8부터 도입된 기능으로, 컬렉션을 처리하고 다양한 연산을 수행하는데 사용하는 API이다.

주로 컬렉션의 저장된 요소를 하나씩 참조하여 람다식으로 처리할 수 있다.

그렇기 때문에 람다와 스트림은 밀접한 관계를 가지고 있다.

아래의 첨부한 사진을 보면 이해가 쉽다.

다음 사진은, 일반적으로 컬렉션 요소를 처리할때 사용하는 for문에서 사용하는 외부 반복자, 그리고 Stream에서 사용하는 내부 반복자이다.

반복이 외부에서 일어남 (for문)

반복이 외부에서 일어남 (for문)

반복이 내부에서 일어남 (Stream)

반복이 내부에서 일어남 (Stream)

스트림의 주요 기능