Esta es la mejor manera (en mi humilde opinión).
List<String> myArrayList = new ArrayList<String>();
//.....
String[] myArray = myArrayList.toArray(new String[myArrayList.size()]);
Este código también funciona:
String[] myArray = myArrayList.toArray(new String[0]);
Pero es menos efectivo: la matriz de cadenas se crea dos veces: la primera vez que se crea una matriz de longitud cero, luego se crea, completa y devuelve la matriz de tamaño real. Entonces, si ya conoce el tamaño necesario (de list.size()
), debe crear una matriz que sea lo suficientemente grande como para colocar todos los elementos. En este caso, no se reasigna.