본문으로 바로가기

ArrayList 등의 List를 배열(Array)로 변환하는 java 버전별 방법, 그리고 참조형, 기본형(Integer>int) 등의 여러가지 방법을 정리합니다.

1. List.toArray()

// set List (String) - reference types
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");

// 1. toArray() - 배열 선언과 동시에 할당
String[] arr = list.toArray(new String[0]); // ["a", "b", "c"]
//String[] arr = list.toArray(String[]::new);   // java11~ 이상

// 2. toArray() - 배열 선언 후 채워 넣음
String[] arr2 = new String[list.size()];
list.toArray(arr2); // ["a", "b", "c"]

List 인터페이스의 toArray() 메서드를 활용하는 방법입니다.

2. Stream API ( Java8 이상 )

// 3. Stream API (Java8 이상)
String[] arr3 = list.stream().toArray(String[]::new);

Java8버전 이상부터 제공되는 Stream API를 사용하는 방법입니다.

3. 기본형(primitive) 배열로의 변환

// set List (Integer)
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

// 4. int 기본형(primitive) 변환 - 전통적인 방법
int[] arr4 = new int[list.size()];
for(int i = 0; i < list.size(); i++){
    arr4[i] = list.get(i);
}

// 5. int 기본형(primitive) 변환 - Stream API (Java8 이상)
int[] arr5 = list.stream().mapToInt(i->i).toArray();

1, 2번 방법은 참조형타입(reference types)에만 사용이 가능합니다. Integer > int와 같이 기본형 타입(primitive types)의 배열 변환시에는 위와 같이 1. 반복문을 통한 전통적인 방법이나 2. Stream API의 mapToInt를 활용 할 수도 있습니다.(Java 8이상)