**List<String>
**을 **String[]
**로 변환하려면, List
객체의 toArray
메소드를 사용하면 된다.
아래 예제에서는 List<String>
객체를 **String[]
**로 변환하는 방법을 보여준다.
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("one");
stringList.add("two");
stringList.add("three");
String[] stringArray = stringList.toArray(**new String[0]**);
// 결과 확인
for (String s : stringArray) {
System.out.println(s);
}
}
}
**new String[0]
**을 toArray
메소드에 전달하는 이유는 반환되는 배열의 타입을 지정하고, 메소드가 적절한 크기의 배열을 자동으로 생성하도록 하는 것이다.
toArray
메소드는 파라미터로 전달된 배열이 충분한 크기일 때 해당 배열에 리스트의 요소를 담아 반환한다. 그러나 전달된 배열의 크기가 충분하지 않은 경우에는, 메소드가 리스트의 요소를 담을 수 있는 적절한 크기의 새 배열을 생성하고 반환한다.
**new String[0]
**을 전달할 때, 크기가 0인 배열이므로 toArray
메소드는 리스트의 크기에 맞는 새 배열을 생성하게 된다. 이렇게 하면 코드가 간결해지고, 리스트의 크기에 대한 추가 계산이 필요하지 않는다.
다음과 같이 리스트의 크기를 사용하여 배열을 생성하고 전달할 수도 있지만, 이 방법은 불필요한 추가 계산을 포함하게 된다.
String[] stringArray = stringList.toArray(**new String[stringList.size()]**);
대부분의 경우에 **new String[0]
**을 사용하는 것이 더 간결하고 효율적이다.
최근 Java 버전에서는 JVM 최적화가 있어 **new String[0]
**을 사용하는 것이 성능상의 이점도 가질 수 있다.