Как в Java преобразовать список в массив

Начиная с Java 1.6 рекомендуемым считается следующий способ:

Object[] objArray = objList.toArray(new Object[0]);

В ранних версиях Java при создании массива также указывали его размер:

Object[] objArray = objList.toArray(new Object[objList.size()]);

В современных версиях Java так делать не рекомендуется, из-за проблем в многопоточных приложениях, которые могут приводить к тому, что что при определённых (хоть и редких) обстоятельствах последние элементы массива могут оказаться null'ами.

В современных версиях языка разницы в производительности между двумя вариантами нет, машина оптимизирована таким образом, что затраты на оценку размера массива ничтожны и указывать его заранее в целях оптимизации производительности — бессмысленно.

Кроме того в Java 8 для этой цели можно использовать Stream API следующим образом:

Object[] objArray = objList.stream().toArray(Object[]::new);

Пример кода, преобразующий LinkedList в массив:

List<String> stringList = new LinkedList<>();stringList.add("first");stringList.add("second");
String[] stringArray = stringList.toArray(new String[0]);
for (int i = 0; i < stringArray.length; i++) { System.out.println(stringArray[i]);}

Выведет:

first

second