Как в 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