Самый эффективный способ — использовать класс ArrayUtils из библиотеки Apache Commons Lang. Конвертация делается в одну строку:
int[] intArray = ArrayUtils.toPrimitive(myList.toArray(new Integer[0]));
Это конвертирует List<Integer> в примитивный массив int[] без лишних сложностей. Метод toPrimitive() автоматически распаковывает объекты Integer в примитивные значения int.
Если не хочешь использовать внешние библиотеки, можешь сделать ручную конвертацию через цикл:
int[] intArray = new int[myList.size()];
for (int i = 0; i < myList.size(); i++) {
intArray[i] = myList.get(i);
}
Этот способ:
Важно помнить, что List.toArray() возвращает массив Integer[] (тип-обёртка), а не примитивный массив int[]. Чтобы получить примитивные целые числа, нужна дополнительная конвертация.
В большинстве случаев советую использовать подход с Apache Commons Lang, потому что:
Ручной способ стоит выбирать только если есть ограничения по зависимостям или ты принципиально не хочешь тащить в проект внешние библиотеки.
Метод List.toArray() напрямую преобразует List<Integer> в примитивный массив int[] без каких-либо дополнительных обработок.
Новый — ещё не проверен сообществом
Вы