728x90

앞서 이야기한 것처럼 자바 스트림(Stream)은 컬렉션 데이터를 함수형 프로그래밍 방식으로 처리할 수 있는 장점을 가지고 있습니다. 이번에는 스트림의 특징과 종류, 그리고 사용 방법 등에 대해 좀 더 자세히 살펴보겠습니다.

 

스트림의 특징

스트림은 크게 다음과 같은 특징을 가집니다.

  • 순차 처리(Stream)와 병렬 처리(Parallel Stream)를 모두 지원합니다.
  • 스트림은 데이터를 저장하지 않으며, 데이터를 처리하는 방식만을 정의합니다.
  • 스트림은 데이터 소스로부터 데이터를 읽기 때문에 한 번만 사용 가능합니다.
  • 중간 연산(intermediate operation)과 최종 연산(terminal operation)으로 구성됩니다.
  • 중간 연산은 스트림을 반환합니다. 즉, 중간 연산을 여러 개 연결하여 사용할 수 있습니다.
  • 최종 연산은 스트림을 종료하며, 스트림을 이용해 원하는 작업을 수행합니다.

스트림의 종류

스트림은 크게 세 가지 종류로 나눌 수 있습니다.

  • 기본형 스트림: int, long, double 등 기본형 데이터를 다루는 스트림입니다.
  • 객체 스트림: 객체를 다루는 스트림입니다.
  • 병렬 스트림: 여러 스레드를 이용해 병렬 처리를 할 수 있는 스트림입니다.

각 종류별로 제공되는 스트림의 메서드와 기능이 다르므로, 필요에 따라 적절한 스트림을 선택하여 사용해야 합니다.

스트림의 사용 방법

스트림은 컬렉션 데이터를 처리할 때 가장 많이 사용됩니다. 스트림은 다음과 같은 순서로 사용합니다.

  1. 컬렉션 데이터를 스트림으로 변환합니다.
  2. 중간 연산을 이용해 데이터를 처리합니다.
  3. 최종 연산을 이용해 최종 결과를 반환합니다.

스트림의 사용 예시를 보면 다음과 같습니다.

 

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);

int sum = list.stream()
              .filter(i -> i > 2)
              .mapToInt(i -> i * 2)
              .sum();
System.out.println(sum);

코드는 List 요소 중에서 2보다 요소를 2배로 만들어 합산한 값을 출력하는 예제입니다.

+ Recent posts