Java 프로그래밍에서 List와 배열(Array) 간의 상호 변환은 매우 자주 사용되는 기본적인 작업입니다.
Java에서 List를 배열로 변환하는 가장 간단하고 효율적인 방법은 .toArray() 메서드를 사용하는 것입니다.
반대로, Arrays.asList() 메서드를 사용하면 배열을 다시 List로 손쉽게 변환할 수 있습니다.
아래 예제에서는 String 타입의 List와 Integer 타입의 List를 각각 배열 형태로 변환하는 방법을 살펴보겠습니다.
String 리스트를 배열로 변환하기
import java.util.ArrayList;
import java.util.List;
public class ConvertArrayListToArray {
public static void main(String[] args) {
List<String> itemList = new ArrayList<String>();
itemList.add("item1");
itemList.add("item2");
itemList.add("item3");
String[] itemsArray = new String[itemList.size()];
itemsArray = itemList.toArray(itemsArray);
for(String s : itemsArray)
System.out.println(s);
}
}
위 코드에서는 먼저 List의 크기만큼 배열을 생성한 뒤, toArray() 메서드에 해당 배열을 전달하여 변환을 수행합니다. 실행 결과로 리스트에 담긴 모든 문자열이 순서대로 출력됩니다.
- Java에서 ArrayList를 반복문으로 순회하는 방법
- 리스트에서 중복 요소 제거하는 방법
- Java에서 두 개의 ArrayList 비교하는 방법
Integer 리스트를 배열로 변환하기
동일한 방식으로 Integer 타입의 리스트도 배열로 변환할 수 있습니다.
import java.util.ArrayList;
import java.util.List;
public class ConvertArrayListToArray {
public static void main(String[] args) {
List<Integer> intList = new ArrayList<Integer>();
intList.add(10);
intList.add(20);
intList.add(30);
Integer[] intArray = new Integer[intList.size()];
intArray = intList.toArray(intArray);
for(Integer i : intArray)
System.out.println(i);
}
}
String 배열을 List로 변환하기
배열을 다시 List로 변환하는 것도 가능합니다. 이 경우에는 Arrays.asList() 메서드를 활용합니다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ConvertArrayToList {
public static void main(String[] args) {
String[] stringArray = {"item 1", "item 2", "item 3", "item 4"};
List<String> stringList = new ArrayList(Arrays.asList(stringArray));
for (String listItem : stringList) {
System.out.println(listItem);
}
}
}
참고: Arrays.asList()가 반환하는 List는 크기가 고정되어 있어 요소를 추가하거나 삭제할 수 없습니다. 따라서 요소를 자유롭게 수정할 수 있는 List가 필요하다면 위 예제처럼 new ArrayList<>(Arrays.asList(stringArray)) 형태로 새로운 ArrayList로 감싸서 생성하는 것이 좋습니다.