[java] 컬렉션 프레임워크의 스트림 API 활용

컬렉션 프레임워크는 자바에서 데이터들을 저장, 처리 및 관리하는 데 사용되는 중요한 도구입니다. Java 8 버전부터는 이러한 컬렉션 프레임워크를 보다 효율적으로 다룰 수 있는 스트림 API가 추가되었습니다. 스트림 API는 컬렉션의 요소들을 처리하기 위한 강력한 함수형 프로그래밍 스타일의 기능들을 제공합니다.

스트림 API란?

스트림(stream)은 자바 8에서 도입된 컬렉션의 요소들을 처리하기 위한 기능을 제공하는 인터페이스입니다. 스트림을 이용하면 간결하고 효율적인 코드를 작성할 수 있으며, 병렬 처리 기능도 지원됩니다. 스트림은 데이터 요소들을 연속적인 데이터 흐름으로 다룰 수 있도록 합니다.

스트림 API의 장점

스트림 API를 사용하면 다음과 같은 장점을 얻을 수 있습니다.

  1. 간결한 코드: 스트림 API는 함수형 프로그래밍 스타일을 지원하므로 코드가 간결하고 가독성이 높아집니다.
  2. 병렬 처리: 스트림 API는 컬렉션의 요소들을 병렬로 처리할 수 있으므로 대량의 데이터를 효율적으로 처리할 수 있습니다.
  3. 지연 연산: 스트림은 지연 연산을 지원합니다. 즉, 요소들을 실제로 처리할 때까지 기다릴 수 있습니다.
  4. 불변성: 스트림은 원본 데이터를 변경하지 않으므로 안정성이 높아집니다.

스트림 사용 예제

아래는 자바에서 스트림 API를 활용한 예제 코드입니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("apple", "banana", "orange", "kiwi");

        List<String> filteredFruits = fruits.stream()
                .filter(fruit -> fruit.startsWith("a"))
                .collect(Collectors.toList());

        System.out.println(filteredFruits);
    }
}

위 코드는 “apple”, “banana”, “orange”, “kiwi”라는 과일들을 저장한 리스트에서 “a”로 시작하는 과일들만 필터링하는 예제입니다. fruits.stream()을 통해 리스트를 스트림으로 변환하고, filter 메소드를 이용해 조건을 만족하는 요소들만 남깁니다. 마지막으로 collect 메소드를 이용해 필터링된 과일들을 새로운 리스트로 수집합니다. 결과적으로 “apple”과 “orange”만 출력됩니다.

결론

스트림 API는 컬렉션 프레임워크를 더욱 효율적으로 다룰 수 있게 해주는 강력한 도구입니다. 함수형 프로그래밍 스타일의 기능들을 활용하면 코드의 가독성도 향상되고, 병렬 처리 기능을 통해 대량의 데이터를 효율적으로 처리할 수 있습니다. 스트림 API를 활용하여 자바의 컬렉션 프레임워크를 보다 효율적으로 다루어보세요.

참고 자료