Listを配列に変換する

List list = new ArrayList();
list.add("one");
list.add("two");
list.add("three");

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

List.toArray(Object[])は引数で受け取った配列に値をセットする。その引数を戻り値としているので、以下のように書いてもよい。

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

List.toArray()は内部で生成したオブジェクト型の配列に値をセットし、戻り値としているため、以下のコードではClassCastExceptionが発生してしまう。

String[] array = (String[]) list.toArray(); //NG