자바에서 ArrayList와 배열을 변환할때 자료형에 따라 방법이 조금씩 다른거 같아 추후 사용을 위해 정리두고자 한다.
ArrayList<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"]
// 2. toArray() - 배열 선언 후 값 할당
String[] arr2 = new String[list.size()];
list.toArray(arr2); // ["a", "b", "c"]
toArray방법으로 쉽게 변환할 수 있다. 주로 String 을 변환할 때 사용한다.
하지만 int, double, float과 같은 자료형들은 toArray방법으로 변환 할 수 없어 다른 방법을 이용해아한다고 한다.
public static void main(String args[]) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
int[] arr1 = new int[list.size()];
for (int i = 0; i < list.size(); i++)
arr1[i] = list.get(i);
import java.util.*;
String[] strArr = {"one", "two", "three"};
ArrayList<String> strArrList = new ArrayList<>(Arrays.asList(strArr)); // ArrayList : ["one", "two", "three"]
이 방법 또한 int, float, double등의 자료형에선 이용할 수 없다.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// 정적 배열
int[] staticArray = { 1, 2, 3, 4, 5 };
// 동적 배열로 변환
ArrayList<Integer> dynamicList = new ArrayList<>();
for (int num : staticArray) {
dynamicList.add(num);
}
System.out.print(dynamicList);
//[1, 2, 3, 4, 5]
}
}