Skip to main content

List <-> Array 간 형변환


1. List → Array 형변환

List 타입

변환 방법

List<String>

list.toArray(new String[0])

List<Integer>

list.toArray(new Integer[0])

List<Integer>int[]

반복문으로 수동 변환 필요


1) List → Array (참조형, 예: Integer, String 등)
  • toArray() 메서드로 변환이 가능하다.
List<String> list = Arrays.asList("a", "b", "c");
String[] arr = list.toArray(new String[0]);
  • list.toArray(new String[0]): 타입을 명시한 배열로 변환
  • new String[0]은 사이즈가 0이어도 자동으로 맞춰준다.
List<Integer> list = Arrays.asList(1, 2, 3);
Integer[] arr = list.toArray(new Integer[0]);


2) List → Array (기본형, 예: int)
  • Java의 List<Integer>는 int[]로 직접 변환 불가능
  • 직접 반복문으로 넣어줘야 한다.
List<Integer> list = Arrays.asList(1, 2, 3);
int[] arr = new int[list.size()];

for (int i = 0; i < list.size(); i++) {
    arr[i] = list.get(i);  // 언박싱 자동 수행
}




2. Array → List 형변환


변환 방법

String[]

Arrays.asList(arr)

Integer[]

Arrays.asList(arr)

int[]

Arrays.stream(arr).boxed.collect(Collectors.toList())


1) 참조형 배열 → List (예: String[], Integer[] 등)
String[] arr = {"a", "b", "c"};
List<String> list = Arrays.asList(arr);
  • Arrays.asList()는 배열을 고정 크기 리스트로 바꿔준다.
  • 추가/삭제는 불가능 → 변경 가능한 리스트로 바꾸려면
List<String> modifiableList = new ArrayList<>(Arrays.asList(arr));


2) 기본형 배열 → List (예: int[], double[] 등)
  • 자바의 int[]는 바로 List<Integer>로 바꿀 수 없다.
  • Stream + boxed()를 활용한다.
int[] arr = {1, 2, 3, 4};

List<Integer> list = Arrays.stream(arr)  // IntStream 생성
                           .boxed()      // int → Integer (박싱)
                           .collect(Collectors.toList());