[JAVA] List의 toArray() 메소드

세하·2025년 5월 23일

JAVA

목록 보기
16/17

toArray()

List의 toArray() 메소드는 List를 배열(Array)로 변환할 때 사용한다.

Object[] toArray()

리스트의 요소들을 Object 배열로 변환한다.
타입이 Object[]로 고정되므로, 형변환(casting)이 필요함.

import java.util.*;

public class Example {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "cherry");

        Object[] array = list.toArray();

        for (Object obj : array) {
            System.out.println((String) obj); // 형변환 필요
        }
    }
}

T[] toArray(T[] a)

지정한 타입의 배열로 변환한다.

  • 배열 크기가 리스트보다 작으면 새로운 배열을 생성하고 반환
  • 배열 크기가 리스트와 같거나 크면 해당 배열에 값을 채움
  1. 🌟 배열 크기 0 : 새 배열 생성 🌟
List<String> list = Arrays.asList("apple", "banana", "cherry");
  
String[] array = list.toArray(new String[0]);

System.out.println(Arrays.toString(array));
// 출력: [apple, banana, cherry]
  1. 배열 크기 >= 리스트 크기
List<String> list = Arrays.asList("apple", "banana", "cherry");

String[] array = new String[5];

String[] result = list.toArray(array);

System.out.println(Arrays.toString(result));
// 출력: [apple, banana, cherry, null, null]

📌 반환된 배열의 크기는 항상 입력된 배열과 같음
(단, 리스트 크기보다 작으면 새 배열을 생성)

1번의 String[] array = list.toArray(new String[0]); 방식 추천!

ArrayList와 LinkedList에서의 toArray()

ArrayList와 LinkedList도 java.util.List 인터페이스를 구현하고 있기 때문에 toArray() 메소드 사용 가능함.

  1. ArrayList에서 toArray()
import java.util.*;

public class ArrayListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");

        String[] array = list.toArray(new String[0]);

        System.out.println(Arrays.toString(array));  // [A, B, C]
    }
}
  1. LinkedList에서 toArray()
import java.util.*;

public class LinkedListExample {
    public static void main(String[] args) {
        List<String> list = new LinkedList<>();
        list.add("X");
        list.add("Y");
        list.add("Z");

        String[] array = list.toArray(new String[0]);

        System.out.println(Arrays.toString(array));  // [X, Y, Z]
    }
}

0개의 댓글