SeouliteLab

[Java/자바] Stream을 배열로 변환하기 본문

프로그래밍

[Java/자바] Stream을 배열로 변환하기

Seoulite Lab 2024. 3. 11. 08:23

Java에서 Stream을 배열로 변환하는 작업은 데이터 처리에서 흔히 사용됩니다. 여러 가지 방법을 사용하여 Stream을 배열로 변환하는 방법을 알아보고 예제를 통해 실습해보겠습니다.

1. Stream을 배열로 변환하는 방법

Stream을 배열로 변환하는 방법에는 여러 가지가 있습니다. 다음은 그 중 일부입니다.

  • Stream의 toArray() 메서드 사용
  • 배열 생성 후 Stream의 forEach() 메서드를 사용하여 요소 추가
  • Java 8 이상에서는 Stream의 collect() 메서드와 Collectors.toList()를 이용하여 변환

2. Stream을 배열로 변환하는 예제

아래 예제에서는 세 가지 방법을 사용하여 Stream을 배열로 변환하는 방법을 보여줍니다.

예제 1: toArray() 메서드 사용

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

public class StreamToArray {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("Java", "Python", "C++");
        Stream<String> stream = list.stream();

        String[] array1 = stream.toArray(String[]::new);
        System.out.println(Arrays.toString(array1));
    }
}

예제 2: 배열 생성 후 forEach() 메서드를 이용한 요소 추가

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class StreamToArray {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("Java", "Python", "C++");
        Stream<String> stream = list.stream();

        String[] array2 = new String[list.size()];
        stream.forEach(s -> array2[list.indexOf(s)] = s);
        System.out.println(Arrays.toString(array2));
    }
}

예제 3: collect() 메서드와 Collectors.toList()를 이용한 변환

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

public class StreamToArray {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("Java", "Python", "C++");
        Stream<String> stream = list.stream();

        String[] array3 = stream.collect(Collectors.toList()).toArray(new String[0]);
        System.out.println(Arrays.toString(array3));
    }
}

3. 예제 설명

각 예제는 Stream을 String으로 구성한 후, 해당 Stream을 배열로 변환한 후 출력하는 과정을 보여줍니다. 세 가지 방법 모두 간단하며, 사용 상황에 따라 선택하여 적절하게 사용할 수 있습니다.