[java] 스트림 API와 람다 표현식의 관계
개요
Java 8에서 도입된 스트림 API와 람다 표현식은 자바 프로그래밍의 패러다임을 크게 바꾸었습니다. 이들의 관계를 이해하면 더욱 효율적인 코드를 작성할 수 있습니다.
스트림 API
스트림 API는 자바 컬렉션을 다루는 기능을 강화시킨 API입니다. 이를 통해 데이터의 처리를 간편하게 할 수 있으며, 병렬 처리에도 용이합니다. 스트림은 데이터의 흐름을 정의하고, 원하는 결과를 얻기 위해 필요한 계산을 수행합니다.
스트림 기본 구성 요소
스트림은 크게 세 가지 요소로 구성됩니다.
- 소스: 스트림의 데이터 원본입니다. 컬렉션, 배열, 파일 등이 될 수 있습니다.
- 중개 연산자: 데이터를 가공하고 변환하는 연산자입니다. 일반적으로 중개 연산자는 여러 개 연결하여 사용합니다.
- 최종 연산자: 스트림에서 최종 결과를 가져오는 연산자입니다. 이를 통해 원하는 결과를 얻을 수 있습니다.
람다 표현식
람다 표현식은 익명 함수를 만들기 위한 식입니다. 간단하고 간결하게 코드를 작성할 수 있으며, 함수형 프로그래밍을 가능하게 합니다.
람다 표현식의 구조
람다 표현식의 구조는 다음과 같습니다.
(parameter) -> { body }
parameter
: 함수의 매개변수 목록입니다.->
: 람다 연산자입니다. 매개변수와 코드의 구분을 합니다.{ body }
: 함수의 몸체입니다. 코드 블록으로 구성되어 있으며, 중괄호로 묶여 있습니다.
람다 표현식 예시
List<String> names = Arrays.asList("John", "Jane", "Tom", "Alice");
// 기존 방식
names.forEach(new Consumer<String>() {
@Override
public void accept(String name) {
System.out.println(name);
}
});
// 람다 표현식 사용
names.forEach(name -> System.out.println(name));
스트림 API와 람다 표현식의 관계
스트림 API와 람다 표현식은 밀접한 관계를 가지고 있습니다. 스트림 API는 복잡한 데이터 처리를 더욱 간결하게 할 수 있도록 도와줍니다. 이때 람다 표현식을 사용하여 중개 연산자의 로직을 정의합니다.
람다 표현식을 사용하면 for-each 반복문 등의 번거로운 코드 작성을 줄일 수 있습니다. 또한, 스트림 API를 통해 병렬 처리와 같은 고급 기능을 더욱 쉽게 사용할 수 있습니다.
마무리
스트림 API와 람다 표현식은 자바 8 이후부터 많이 사용되는 기술입니다. 이들을 활용하여 더욱 간결하고 효율적인 코드를 작성할 수 있습니다. 자바 개발자라면 이들의 관계를 잘 이해하고 적절히 사용하는 것이 중요합니다.