Esta é a melhor forma (IMHO).
List<String> myArrayList = new ArrayList<String>();
//.....
String[] myArray = myArrayList.toArray(new String[myArrayList.size()]);
Este código também funciona:
String[] myArray = myArrayList.toArray(new String[0]);
Mas é menos eficaz: a matriz de string é criada duas vezes: na primeira vez, a matriz de comprimento zero é criada, depois a matriz de tamanho real é criada, preenchida e retornada. Então, se você sabe o tamanho necessário (de list.size()
), você deve criar um array que seja grande o suficiente para colocar todos os elementos. Nesse caso, ele não é realocado.